03 2022 档案

摘要:扩展欧拉定理 当a和p互质的时候,a^(b%f(p)) = 1 (mod p) 当a和p不互质的时候,a^(b%f(p) + f(p)) = 1 (mod p), 其中需要满足b>=f(p) 一般可以写作a^min(b, b%f(p) + f(p)) (mod p) 题目链接:http://oj.d 阅读全文
posted @ 2022-03-31 15:12 牛佳文 阅读(58) 评论(0) 推荐(0)
摘要: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 牛佳文 阅读(55) 评论(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 牛佳文 阅读(57) 评论(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 牛佳文 阅读(75) 评论(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 牛佳文 阅读(61) 评论(0) 推荐(0)
摘要:积性函数 完全积性函数 常见积性函数 莫比乌斯函数 线性筛求积性函数 迪利克雷卷积 迪利克雷卷积的性质 莫比乌斯反演 互质对数 gcd之和 总结 阅读全文
posted @ 2022-03-25 12:29 牛佳文 阅读(111) 评论(0) 推荐(1)
摘要:二分图 1. 充要条件:至少两个顶点并且不存在奇数环 并查集就可以,其实也就是维护两个类别,当有边的时候,说明他两个不是一类的 1. 构造一个二分图进行染色就可以了 2. 情侣之间连边,1-2,3-4,...这样子连边,这样子一定是不存在奇数环的, 3. 这样的话一个人连接的两条边就是一个旁边的人, 阅读全文
posted @ 2022-03-23 14:27 牛佳文 阅读(68) 评论(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 牛佳文 阅读(68) 评论(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 牛佳文 阅读(70) 评论(0) 推荐(0)
摘要:秦始皇的国家公路系统 问题: 1. prim如何重构出树,记录一个from数组就可以了,具体看代码 2. 求次小生成树的时候,dfs求到某个点的最长边 3. 次小生成树和最小生成树至多有一条边不一样 #include<bits/stdc++.h> using namespace std; typed 阅读全文
posted @ 2022-03-21 19:49 牛佳文 阅读(58) 评论(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 牛佳文 阅读(87) 评论(0) 推荐(1)
摘要:简介 求解线性同余方程组:x=ai(mod mi) mi之间两两互质,并不是所有的gcd=1,比如6,10,5就不是 则在模mi乘积的范围内的有唯一解 要求两两互质是由于求解的让Mi和mi是互质的 基本上useless,条件比较苛刻 不互质增量法:不断地合并两个方程,最后只剩一个 两个模数不互质,要 阅读全文
posted @ 2022-03-19 16:51 牛佳文 阅读(83) 评论(0) 推荐(0)
摘要:算法竞赛进阶指南0x02 递推和递归 枚举总结:指数型枚举的复杂度是(2^n),一般n是十几个,组合型枚举,略低于(2^n),他还和m有关,一般最多能枚举到20左右吧 排列型枚举的复杂度更高,是O(n!)的,所以一般也就撑死了10左右 指数型枚举 #include<bits/stdc++.h> us 阅读全文
posted @ 2022-03-18 16:26 牛佳文 阅读(66) 评论(0) 推荐(0)
摘要:注意事项: 1. dfs序上线段树 2. 当是区间覆盖的时候,要记得判定pushdown能不能down,可能会造成错误的初始值覆盖 3. 在想维护哪些信息的时候,只需要考虑在已经这些清晰的情况下,如何递推计算这些信息以及维护标记就行了,不要绕进去 4. 结构体中有多个变量的时候,索引赋值更不容易出错 阅读全文
posted @ 2022-03-16 15:35 牛佳文 阅读(46) 评论(0) 推荐(0)
摘要:总结: 1. 维护并查集的时候前面获得了pa=find(pa), 但是后面修改了p[pa],如果还使用之前的pa会造成错误,所以尽量在有改变之后都是用新的pa=find(a) 2. 并查集可以用来维护不同的种类(维护和根节点的距离),一般用d[pa] = d[b] - d[a] + d来维护,d具体 阅读全文
posted @ 2022-03-14 17:16 牛佳文 阅读(101) 评论(0) 推荐(0)
摘要:a^b 题目链接http://oj.daimayuan.top/course/13/problem/565 边界问题:b=0并且p=1的时候,快速幂板子返回的是1,实际是0,在qmi()后面%p就可以了,或者在qmi()板子里面初始化成LL res = 1 % p; #include<bits/st 阅读全文
posted @ 2022-03-14 11:47 牛佳文 阅读(190) 评论(0) 推荐(0)
摘要:动态规划的优化思路 题目修改为在最坏情况下需要确定蛋硬度的最小次数 再优化 f[i][j]:j个蛋在i次最坏情况的实验下能够确定的最高层数 所以我们只需要找到一个最小的x使得f[x][n]>=m就可以了 发现状态转移和组合数的求法特别像,并且g是大于对应的组合数的 最后一种方法,考虑了将结果放到了状 阅读全文
posted @ 2022-03-13 19:56 牛佳文 阅读(40) 评论(0) 推荐(0)
摘要:牛客容斥 两个子集的情况 设s是一个有限集,A和B是S的两个子集,求|S - A∪B| = |S| - |A| - |B| + |A∩B| 例:求1-n中,既不是2的倍数也不是3的倍数的数量 S = {1,....n}, A = {x∈S| 2|x}, B = {x∈S| 3|x} |S - A∪B 阅读全文
posted @ 2022-03-13 00:16 牛佳文 阅读(49) 评论(0) 推荐(0)
摘要:同余 // 常用知识 a==b(mod m) < > m|(a-b) a==b(mod m) 并且 a==b(mod n) --> m|(a-b) n|(a-b) > [n, m]|(a-b) --> a==b(mod [n, m]) (k, m) = d, ka = ka'(mod m) --> 阅读全文
posted @ 2022-03-12 23:41 牛佳文 阅读(197) 评论(0) 推荐(0)
摘要:Codeforces Round #775 (Div. 2) D. Integral Array 题目大意:给定n(<=1e6)个数,数的范围是在1-c(<=1e6)中,如果其中任意两个数x,y,(x>=y), 使得x/y(下取整)也在n个数里面就是好的数列,判断这个n个数是不是好的数列 x/y = 阅读全文
posted @ 2022-03-12 18:49 牛佳文 阅读(76) 评论(0) 推荐(0)
摘要:3.12 vp一场cf 完成 kuangbin搜索入门写完 待补 补下之前的cf题目 待补 dls的区间dp补完 待补 3.14 kuangbin 并查集刷完 阅读全文
posted @ 2022-03-12 14:53 牛佳文 阅读(58) 评论(0) 推荐(0)
摘要:区间dp ICPC Beijing 2017 J, Pangu and Stones 题目链接:http://oj.daimayuan.top/course/8/problem/327 题目大意:有n堆石子,每对有ai个,每次可以合并[L, R]堆石子,代价是这些石子的之和 f[l][r][k]:表 阅读全文
posted @ 2022-03-11 13:15 牛佳文 阅读(85) 评论(0) 推荐(0)
摘要:树形DP 树上背包 树上背包1:http://oj.daimayuan.top/course/8/problem/269 给定一个n(<=2000)个点的树,每个点有一个权值,权值可能是负数,选择一个大小恰好为m的并且包含根节点的连通 块,使得权值和最大 时间复杂度:O(n^2) 两个背包的大小分别 阅读全文
posted @ 2022-03-08 13:39 牛佳文 阅读(294) 评论(0) 推荐(0)
摘要:数论 整除/gcd 一些常见的结论 1-n之间的素数个数:n/lnn 级别的 第n个素数的大小:nlogn级别大小 1-n的倒数和:logn级别 1-n之间素数的倒数和:loglogn级别的 a|c, b|c, (a, b) = 1 --> ab|c, a,b分别是c的一些质因子乘积,且a,b没有相 阅读全文
posted @ 2022-03-06 21:20 牛佳文 阅读(198) 评论(0) 推荐(0)