02 2020 档案
摘要:二进制枚举 对于一个集合子集有$2^n$个,所以枚举有$(1 << n)$个 for(int i = 0; i < (1 << n); i++) 在二进制里0表示不选,1表示选 当n = 3时,集合有${0,1,2,01,02,12,012}$七种选择 $i = 0$时,不选 $i = 1$时,$0
阅读全文
摘要:n个数,区间查询[L,R]出现了几种数字 时间复杂度$O(n\sqrt n)$ 莫队的基本操作就是把n个数进行分块,每一块有$\sqrt n$个,有$\sqrt n$块,然后离线查询,把查询进行排序,按照分块位置排序,如果在同一个分块,那么就按照右区间排序,然后对于每一个排序进行暴力遍历即可 我们开
阅读全文
摘要:两次dfs 时间复杂度$O(n)$ 先从任意移动p出发,找离他最远的点q,在从q点出发,找离他最远的点w,w到q的距离就是树的直径 #include <iostream> #include <cstdio> using namespace std; const int maxn = 1e6 + 5;
阅读全文
摘要:是一种随机化素数检测算法 基于下面的定理 费马小定理:如果p是素数,a不是p的倍数,那么$a ^ {p - 1} \equiv 1(\bmod \ p)$ 二次探测定理:如果p是一个素数,且$x \in [1,p - 1]$,则方程$x ^2 % p = 1$的解为$x = 1$或$x = p -
阅读全文
摘要:给出n和n个数,求异或和为0的子段个数 "传送门" 设a[i]为输入的数 b[i]为异或前缀和 b[i] = a[1] ^ a[2] ^ ... ^ a[i 1] ^ a[i] 已知一个数x^y = 0当且仅当x == y时成立 那么对于一段[1,r]来说,异或前缀和为b[r],那么如果想要以r为异
阅读全文

浙公网安备 33010602011771号