摘要: 常见积性函数 线性筛求常见积性函数 设 \(f(n)\) 为积性函数 \(n=p_1^{e_1}*p_2^{e_2}*p_3^{e_3}*...p_k^{e_k}\), 设 \(p_1\) 为最小素因子 由积性函数性质,\(f(n) = f(\frac n{p_1^{e_1}})*f(p_1^{e_ 阅读全文
posted @ 2022-05-19 20:05 hzy0227 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 狄利克雷卷积 f, g 为数论函数 \(h=f*g\), 即 \(h(n)=\sum\limits_{d_1*d2=n}f(d_1)*g(d_2)\) 性质 满足交换律 满足结合律,即 \(p(n)=(f*g)*h=f*(g*h)=\sum\limits_{d_1*d_2*d_3=n}f(d_1)* 阅读全文
posted @ 2022-05-19 20:04 hzy0227 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 指数方程 求 $a^x\equiv b;(mod;m)$ 的最小非负整数解,其中 $\gcd(a,m)=1$ 暴力做法 因为最长 $\phi(m)$ 为一个循环,$\phi(m)$ 与 $m$ 是一个量级的,枚举这个循环,复杂度为 $O(m)$ BSGS算法 只适用于 $\gcd(a,m)=1$ 可 阅读全文
posted @ 2022-05-19 20:02 hzy0227 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 阶 定义:满足 \(a^x \equiv1\;(mod\;m)\) 最小的 \(x\) 称为 \(a\) 模 \(m\) 的阶 性质:\(x\mid \phi(m)\) 求阶: ​ 先将 \(\phi( m)\) 标准分解,\(phi(m)=p_1^{e_1}*p_2^{e_2}*...p_k^{e 阅读全文
posted @ 2022-05-19 20:01 hzy0227 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 原根 定义:如果 \(g\;(mod\;m)\) 的阶为 \(\phi(m)\) 则 \(g\) 为 \(m\) 的原根 \(g^0,g^1,...g^{\phi(m)-1}\) 构成了模 \(m\) 的简化剩余系 (即 \([1,m-1]\) 中与 \(m\) 互质的数可以被原根 \(g\) 的阶 阅读全文
posted @ 2022-05-19 20:01 hzy0227 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 欧拉定理 欧拉定理 ​ \(gcd(a,m)=1\) 时, \(a^{x}\equiv a^{x \mod \phi(m)}\;(mod\;m)\) 扩展欧拉定理: ​ \(a^{x}\equiv a^{x \mod \phi(m)+\phi(m)}\;(mod\;m)\) 证明: a 与 m 互质 阅读全文
posted @ 2022-05-19 19:59 hzy0227 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Lucas 定理 组合数取模 3 (适用于模数较小且为素数,组合数较大的情况) Lucas 定理 给定 n, m, p, p 为素数 把 n, m 拆解为 p 进制 \[ n=n_0*p^0+n_1*p^1+...+n_k*p^k\\ m=m_0*p^0+n_1*p^1+...+m_k*p^k\\ 阅读全文
posted @ 2022-05-19 19:58 hzy0227 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 中国剩余定理 构造法(只适用模数两两互质的情况,CRT的本质思想) 对于解线性同余方程组 useless,因为完全可以被增量法代替 但是揭示了若模数两两互质,则线性同余方程组一定有解。 若模数为合数 \(q\), \(q=p_1^{e_1}*p_2^{e_2}*p_3^{e_3}*...p_k^{e 阅读全文
posted @ 2022-05-19 19:57 hzy0227 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 扩展欧几里得算法 对于 \(a*x+b*y=m\), 可用 exgcd 求出 \(d=gcd(a,b)\) \(d\nmid m\) ,无解 \(d\mid m\), 则 exgcd 可解出 \(a*x+b*y=d\) 的两个解 \(xx,yy\) 令 \(a'=\frac ad,\;b'=\fra 阅读全文
posted @ 2022-05-19 19:56 hzy0227 阅读(13) 评论(0) 推荐(0) 编辑
摘要: C - Fox And Names 拓扑排序 要自定义字典序使给出的字符串是按字典序递增的顺序 可对于前后两个字符串可找到一组字母间的关系,转化为差分约束问题 #include <iostream> #include <cstring> #include <algorithm> #include < 阅读全文
posted @ 2022-05-19 19:17 hzy0227 阅读(27) 评论(0) 推荐(0) 编辑
摘要: D - Substring 拓扑排序 #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <cmath> #include <queue> using namespace std 阅读全文
posted @ 2022-05-19 19:13 hzy0227 阅读(16) 评论(0) 推荐(0) 编辑
摘要: D - Present 位运算 + 思维 + 二分(双指针) 按位考虑,第 \(k\) 位是 0 还是 1 只跟前 \(k\) 位有关,因此算第 \(k\) 位的答案时可对 \(a\) 数组的元素 \(\mod 2^{k+1}\) 赋给 \(b\) 若 \(b_i+b_j\) 第 \(k\) 位是 阅读全文
posted @ 2022-05-19 19:11 hzy0227 阅读(14) 评论(0) 推荐(0) 编辑
摘要: E - Colorings and Dominoes DP + 算贡献 首先观察到每一行的贡献和每一列的贡献是独立的,所以可以单独算出每一行和每一列的贡献之和 对某一行考虑 设 \(f[i][0]\) 为第 \(i\) 个元素可作为放骨牌的第一个位置的概率,\(f[i][1]\) 为第 \(i\) 阅读全文
posted @ 2022-05-19 18:59 hzy0227 阅读(21) 评论(0) 推荐(0) 编辑
摘要: D - The Number of Pairs 数论,线性筛 给定 \(c,d,x\) 求满足 \(c*[a,b]-d*(a,b)=x\) 的 \((a,b)\) 对数 (当 \(a\neq b\) 时,\((a,b),(b,a)\) 算两对) 记 \(lcm=[a,b],\;gcd=(a,b)\) 阅读全文
posted @ 2022-05-19 17:33 hzy0227 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 双连通分量 边双连通分量 桥 :去掉该边后,图变的不连通 边双连通分量(E-DCC):极大的、不包含桥的连通块 性质: 一个边双连通分量内的任意两个点,之间至少存在两条没有公共边的路径 对边双连通分量缩点后,剩下的边都是桥,每一个连通块都是一颗树 对边双连通分量缩点后,若要把缩点后的图变成一个双连通 阅读全文
posted @ 2022-05-19 17:12 hzy0227 阅读(26) 评论(0) 推荐(0) 编辑
摘要: D - Toss a Coin to Your Graph... 二分 + 判环 + DAGDP 最大值最小化可以想到二分答案 check过程为只给小于等于答案的点之间连边,虽然 k 很大,但如果存在环则一定可以,不存在环就求当前图的最长路,如果最长路 ⇐ k - 1 则可以 判环和求最长路都可用拓 阅读全文
posted @ 2022-05-19 00:02 hzy0227 阅读(35) 评论(0) 推荐(0) 编辑