摘要: Lucas定理 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e6+10; int fac[N], inv[N]; LL p, T; LL qmi(LL a, LL b, LL mo 阅读全文
posted @ 2022-03-30 15:22 牛佳文 阅读(34) 评论(0) 推荐(0) 编辑
摘要: lowbit运算 modify:下表不能有0 题目链接:http://oj.daimayuan.top/course/15/problem/636 一个log的树状数组二分 #include<bits/stdc++.h> using namespace std; typedef long long 阅读全文
posted @ 2022-03-30 14:18 牛佳文 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 单调栈 // 求离某个元素最近的第一个比他大的或者比他小的元素的角标 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 2e5+10; int q[N], hh = -1, a[N]; f 阅读全文
posted @ 2022-03-28 21:50 牛佳文 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 堆 没有.clear()操作 多路归并,mlogm #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> PII; const int N = 1e5+10; priorit 阅读全文
posted @ 2022-03-28 21:04 牛佳文 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 积性函数 完全积性函数 常见积性函数 莫比乌斯函数 线性筛求积性函数 迪利克雷卷积 迪利克雷卷积的性质 莫比乌斯反演 互质对数 gcd之和 总结 阅读全文
posted @ 2022-03-25 12:29 牛佳文 阅读(80) 评论(0) 推荐(1) 编辑
摘要: 二分图 1. 充要条件:至少两个顶点并且不存在奇数环 并查集就可以,其实也就是维护两个类别,当有边的时候,说明他两个不是一类的 1. 构造一个二分图进行染色就可以了 2. 情侣之间连边,1-2,3-4,...这样子连边,这样子一定是不存在奇数环的, 3. 这样的话一个人连接的两条边就是一个旁边的人, 阅读全文
posted @ 2022-03-23 14:27 牛佳文 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 增减序列 1. 决定序列元素的是差分的第一个元素 2. 保证序列相等的是第二个到最后一个元素 3. 最后一个元素+1没啥关系 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e5+10 阅读全文
posted @ 2022-03-22 21:30 牛佳文 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 小凯的疑惑 两个互质的数a,b,z=ax+by,求不能使用非负数x,y,表示的最大的z是多少 由扩展欧几里得知道ax+by=1都是有解的,但是解的x,y不一定都是非负的 另外通过通项公式我们知道x=x0+kb,y=y0-ka; 他其实就是一条直线,经过数形结合发现, 扩展欧几里得3 1. 要变成最小 阅读全文
posted @ 2022-03-22 11:10 牛佳文 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 秦始皇的国家公路系统 问题: 1. prim如何重构出树,记录一个from数组就可以了,具体看代码 2. 求次小生成树的时候,dfs求到某个点的最长边 3. 次小生成树和最小生成树至多有一条边不一样 #include<bits/stdc++.h> using namespace std; typed 阅读全文
posted @ 2022-03-21 19:49 牛佳文 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 线性筛 p[i]:表示i的最小素因子的是i,pr[]里面放的是素数是哪些 第二层循环,循环pr[j], 当循环到i的最小素因子的时候就会跳出来,每个数也都是在他的最小素因子的地方被筛掉的 #include<bits/stdc++.h> using namespace std; typedef lon 阅读全文
posted @ 2022-03-20 12:01 牛佳文 阅读(66) 评论(0) 推荐(1) 编辑