mex

[codeforces 1364C] Ehab and Prefix MEXs MEX数据生成

北慕城南 提交于 2020-08-10 05:39:08
Codeforces Round #649 (Div. 2) 参与排名人数11286 [codeforces 1364C] Ehab and Prefix MEXs MEX数据生成 总目录详见 https://blog.csdn.net/mrcrack/article/details/103564004 在线测评地址 https://codeforces.com/contest/1364/problem/C Problem Lang Verdict Time Memory C - Ehab and Prefix MEXs GNU C++17 Accepted 62 ms 1600 KB 题目大意:根据MEX({b1})=a1,MEX({b1,b2})=a2,MEX({b1,b2,b3})=a3,...... 推导出数组b的各个元素,若不存在数组b,则输出-1. 第一步,明确,按题意,都能找到数组b. 第二步,因数组a是非递减序列,若a[i]!=a[i-1],则b[i]=a[i-1]; 若a[i]==a[i-1],那么b[i]可以在[0,n]中未占用的数据中,自小到大,进行选取。 样例模拟如下 3 1 2 3 0 1 2 在区间[0,3]未被占用的数是0 b[1]=0 因a[2]=2,a[1]=1,a[2]!=a[1],故a[1]=1可以腾出给b[2]使用 b[2]=1 因a[3]

.NET高级调试系列-Windbg调试入门篇

假装没事ソ 提交于 2020-08-09 12:54:23
Windbg是.NET高级调试领域中不可或缺的一个工具和利器,也是日常我们分析解决问题的必备。准备近期写2篇精华文章,集中给大家分享一下如果通过Windbg进行.NET高级调试。 今天我们来一篇入门的文章。首先,Windbg是什么? Windows Debugger,简称WinDbg,.NET 最强分析调试利器。它可以用来: 调试内核模式和用户模式代码 分析Crash dump 分析代码执行时 CPU 寄存器信息 我们可以通过WinDbg调试以下具体问题: 线程阻塞 内存泄露 分析查询运行时线程堆栈和变量 分析进程Crash原因 分析消耗CPU原因 查看并调试CLR异常 … 那么,首先我们先进行Windbg下载安装、配置。 一、下载安装WinDbg,配置调试环境 1. 推荐下载链接 https://raw.githubusercontent.com/EasyDarwin/Tools/master/Windbg_x86_x64/dbg_amd64.msi 或者从Windows Store下载 WingDbg Preview版本 下载后一步一步安装即可 2. 配置调试符号 大家会问一个问题:为什么要配置调试符号? 若要使用 WinDbg 提供的所有高级功能,必须加载适当的符号:比如说我们可以调试、查看.NET CLR程序堆栈,此时要加载对应的调试符号。

博弈论入门(Game Theory)

倾然丶 夕夏残阳落幕 提交于 2020-08-07 07:08:06
博弈论(Game Theory) 一、巴什博弈(Bash Game) 操作: 代码: 例题: 1.Brave Game 2. kiki's game 二、威佐夫博弈(Wythoff Game) 操作: 代码: 例题: 1.取石子游戏 三、尼姆博弈论(Nim Game) 操作: 代码: 例题: 1. Being a Good Boy in Spring Festival 四、斐波那契博弈论 操作: 代码: 例题: 1. 取石子游戏 五、SG函数 操作: 代码: 例题: 1. Good Luck in CET-4 Everybody! 2. S-Nim 一、巴什博弈(Bash Game) 一堆n个物品,两人从中轮流取出(1~m)个;最后取光者胜。 操作: n=k * (m+1)+r 先手拿走r个,那么后手无论拿走几个(1~m),先手只要使得拿走的和为m+1,先手就赢。 反之, n=k * (m+1) 先手无论怎么操作都会输 代码: int main ( ) { LL t ; sf ( t ) ; while ( t -- ) { LL n , m ; sf ( n ) , sf ( m ) ; if ( n % ( m + 1 ) ) printf ( "first\n" ) ; //可以把k*(m+1)这个状态给对面 else printf ( "second\n" ) ; /

「解题报告」HDU6756 Finding a MEX

落花浮王杯 提交于 2020-07-28 08:34:07
传送 🚪 题意 一张 \(n\) 个点 \(m\) 条边的无向图 \(G = (V,E)\) . 每个点有点权 \(A_i\) . 对于每个点 \(u\) , 定义集合 \(S_u = \{ A_v | (u,v) \in E \}.\) 定义 \(\rm MEX_u\) 为集合 \(S_u\) 中不存在的最小非负整数. \(q\) 个指令, 1 u x : 把 \(A_u\) 改为 \(x\) . 2 u : 询问 \(\rm MEX_u\) . 数据范围 $ 1 \le n \le 10^5,\ 1 \le m \le 10^5,\ 1 \le q \le 10^5,\ 0 \le A_i \le 10^9.$ 思路 总 总思路 : 根号分治 . 前置知识 : 树状数组二分 . 树状数组求 \(\rm MEX\) 首先需要知道, 对于 \(\rm MEX_u\) , 我们可以用树状数组 \(O(\log n)\) 的求出. 为了方便描述以及便于树状数组上求解, 我们把所有点权 \(+1\) , 并把 \(\rm MEX\) 重定义为集合中 最小的正整数 . 求 \(\rm MEX\) , 朴素的思路是把集合中的数放进桶里, 然后找桶中的第一个空位. 这个思路也可以描述为 : 找到第一个满足前缀和 \(sum_i \not = i\) 的位置 \(i\) . 而前缀和 \(sum

「解题报告」HDU6756 Finding a MEX

跟風遠走 提交于 2020-07-28 08:33:54
传送 🚪 题意 一张 \(n\) 个点 \(m\) 条边的无向图 \(G = (V,E)\) . 每个点有点权 \(A_i\) . 对于每个点 \(u\) , 定义集合 \(S_u = \{ A_v | (u,v) \in E \}.\) 定义 \(\rm MEX_u\) 为集合 \(S_u\) 中不存在的最小非负整数. \(q\) 个指令, 1 u x : 把 \(A_u\) 改为 \(x\) . 2 u : 询问 \(\rm MEX_u\) . 数据范围 $ 1 \le n \le 10^5,\ 1 \le m \le 10^5,\ 1 \le q \le 10^5,\ 0 \le A_i \le 10^9.$ 思路 总 总思路 : 根号分治 . 前置知识 : 树状数组二分 . 树状数组求 \(\rm MEX\) 首先需要知道, 对于 \(\rm MEX_u\) , 我们可以用树状数组 \(O(\log n)\) 的求出. 为了方便描述以及便于树状数组上求解, 我们把所有点权 \(+1\) , 并把 \(\rm MEX\) 重定义为集合中 最小的正整数 . 求 \(\rm MEX\) , 朴素的思路是把集合中的数放进桶里, 然后找桶中的第一个空位. 这个思路也可以描述为 : 找到第一个满足前缀和 \(sum_i \not = i\) 的位置 \(i\) . 而前缀和 \(sum

「解题报告」HDU6756 Finding a MEX

醉酒当歌 提交于 2020-07-28 08:32:32
传送 🚪 题意 一张 \(n\) 个点 \(m\) 条边的无向图 \(G = (V,E)\) . 每个点有点权 \(A_i\) . 对于每个点 \(u\) , 定义集合 \(S_u = \{ A_v | (u,v) \in E \}.\) 定义 \(\rm MEX_u\) 为集合 \(S_u\) 中不存在的最小非负整数. \(q\) 个指令, 1 u x : 把 \(A_u\) 改为 \(x\) . 2 u : 询问 \(\rm MEX_u\) . 数据范围 $ 1 \le n \le 10^5,\ 1 \le m \le 10^5,\ 1 \le q \le 10^5,\ 0 \le A_i \le 10^9.$ 思路 总 总思路 : 根号分治 . 前置知识 : 树状数组二分 . 树状数组求 \(\rm MEX\) 首先需要知道, 对于 \(\rm MEX_u\) , 我们可以用树状数组 \(O(\log n)\) 的求出. 为了方便描述以及便于树状数组上求解, 我们把所有点权 \(+1\) , 并把 \(\rm MEX\) 重定义为集合中 最小的正整数 . 求 \(\rm MEX\) , 朴素的思路是把集合中的数放进桶里, 然后找桶中的第一个空位. 这个思路也可以描述为 : 找到第一个满足前缀和 \(sum_i \not = i\) 的位置 \(i\) . 而前缀和 \(sum

GPU memory not getting free using cudaMalloc3DArray

南笙酒味 提交于 2020-07-09 05:21:36
问题 I am using C++, GTX1070 I am allocating a cuda array as described: //variables: Vdepth = 200, Vheight = 100, Vwidth = 100, device = 0 VolumeId = 0 cudaExtent volumeSize = make_cudaExtent(Vdepth, Vheight, Vwidth); cudaArray *d_volumeArray = NULL; cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc<texture_type>(); VERIFY_CALL( cudaMalloc3DArray(&d_volumeArray, &channelDesc, volumeSize) ); cu_VolArray[device][VolumeId] = d_volumeArray; Then I try to free it like this: VERIFY_CALL

mex compilation error C2440: 'initializing': cannot convert from 'const mwSize *' to 'const int32_t *' [closed]

大憨熊 提交于 2020-06-16 17:55:12
问题 Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 2 years ago . I don't have experience with C/C++ syntax and I am facing the issue of adjusting this change of syntax. I am trying to generate the mex file for libvisio2. I have visual studio 2017 and matlab 2018a. the complete error is D:\Libraries\libviso2\matlab\matcherMex.cpp(101): error C2440

[CF940F]Machine Learning

烈酒焚心 提交于 2020-05-05 19:58:13
codeforces #一句话题意 求区间数字出现次数的mex,带修改 #sol 带修膜队不解释 带修膜队的排序! struct query{ int id,l,r,t; bool operator < (const query &b) const { if (l/block!=b.l/block) return l/block<b.l/block; if (r/block!=b.r/block) return r/block<b.r/block; return t<b.t; } }q1[N]; 左端点所在块为第一关键字, 右端点所在块 为第二关键字,操作版本为第三关键字。 块的大小是$n^{\frac{2}{3}}$,复杂度是$O(n^{\frac{5}{3}})$ 然后就是离散化数组要开两倍 ##code #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar(); if (ch=='-') w=0,ch=getchar(); while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-

Codeforces 940F Machine Learning (带修改莫队)

这一生的挚爱 提交于 2020-05-05 19:58:02
题目链接 Codeforces Round #466 (Div. 2) Problem F 题意 给定一列数和若干个询问,每一次询问要求集合$\left\{c_{0}, c_{1}, c_{2}, c_{3}, ...,c_{10^{9}}\right\}$的$mex$    同时伴有单点修改的操作。 根据题目询问的这个集合的性质可以知道答案不会超过$\sqrt{n}$,那么每次询问的时候直接暴力找就可以了。 剩下的都是可修改莫队的基本操作。 #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i) #define dec(i, a, b) for (int i(a); i >= (b); --i) const int N = 1e5 + 10; int c[N], f[N << 1], vis[N], ans[N]; int a[N], b[N], d[N << 1]; int n, m, bs, et; int cnt = 0, tot = 0; int op, x, y; int l, r; int net, ret; struct node{ int l, r, lb, rb, id, x; friend bool operator <