上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 27 下一页
摘要: 筛选出从2~n的所有素数 埃氏筛 对2~n中的每个数k,筛去k在2~n中的每一个倍数,最后剩下的就是2~n的所有素数,因为相当于每一个数k都会被2~k - 1的所有数筛一遍,一旦k存在2~k - 1的约数,那么他必定会被筛掉,反之k一定不会被筛掉。 **注意:**k是素数 ⇔ k不存在2~k - 1 阅读全文
posted @ 2021-01-07 10:43 yys_c 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 给一个数n,对他进行质因数分解 代码 for(int i = 2; i <= n; i ++) if(n % i == 0){ cout << i << endl; while(n % i == 0) n /= i; } 证明以上循环可以输出n的所有质因数 当n为质数时,只输出n,得证。 当n不是质 阅读全文
posted @ 2021-01-05 17:11 yys_c 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 给一个数n, 求[1, n]内的所有约数 由于当$i | n$,必有$(n / i) | n$,并且这两个约数关于$\sqrt n$对称,所以要枚举出所有的约数,只需要枚举到$1,...,[\sqrt n]$的约数即可,并且对于任意的$i \in {1,... [\sqrt n]}$都有$i < n 阅读全文
posted @ 2021-01-05 15:24 yys_c 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 乘法逆元 需要乘法逆元的原因:对于两个超大的正整数a, b, long long无法存储,保证b | a, 现在要计算(a / b) mod m,其中m为素数。考虑以下计算方法: 认为$a / b = (a %m) / (b % m) %m$,这个显然不对。 所以为了能够方便的算出(a / b) m 阅读全文
posted @ 2020-12-31 21:09 yys_c 阅读(112) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> #include<stack> using namespace std; const int N = 10010; struct Node{ int l, r; }tr[N]; int n, u; int st[N]; int main(){ cin >> n 阅读全文
posted @ 2020-12-05 17:38 yys_c 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 坑点: x和y是朋友,y的敌人不一定是x的敌人,所以不可以把x的敌人和y的敌人合并。 x和y是敌人,除了y的敌人是x的朋友以外,y的朋友还是x的敌人。 另外注意在合并集合的时候,需要将集合合并到朋友域(1~n)里面来,方便统计。 #include<iostream> using namespace 阅读全文
posted @ 2020-10-29 19:45 yys_c 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题意:给你m个询问,每一个询问给出一个区间的左右端点和区间中的1的数量的奇偶性,输出不出现矛盾的最大的k值,即1k无矛盾,1k + 1矛盾。 方法1:带权并查集 + 离散化 设区间左右端点a和b,01序列的前缀和数组为s,那么[a, b]中的1的个数cnt = s[b] - s[a - 1], 那么 阅读全文
posted @ 2020-10-29 12:05 yys_c 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 带权并查集:维护结点到其根结点的的一些信息的并查集 本题维护的是每一个结点到它的根的距离 #include<iostream> using namespace std; const int N = 30010; int p[N]; int d[N]; int cnt[N]; /* d[x]本身存放的 阅读全文
posted @ 2020-10-28 13:36 yys_c 阅读(75) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> #include<vector> #include<algorithm> using namespace std; #define PII pair<int, int> #define x first #define y second const int N = 阅读全文
posted @ 2020-10-28 12:28 yys_c 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 完全背包模型 二维 #include<iostream> using namespace std; const int N = 4010; const unsigned int mod = 1 << 31; unsigned int f[N][N]; int n; int main(){ cin > 阅读全文
posted @ 2020-10-27 20:15 yys_c 阅读(94) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 27 下一页