数学-数论
文章平均质量分 82
Best KeyBoard
这个作者很懒,什么都没留下…
展开
-
知识点-欧拉定理 欧拉函数
欧拉定理aϕ(m)≡1(modm)(gcd(a,m)=1)am−1≡1(modm)(m为质数时,费马小定理)a^{\phi(m)} \equiv 1 \pmod m (gcd(a,m)=1) \\a^{m - 1} \equiv 1 \pmod m(m为质数时,费马小定理)aϕ(m)≡1(modm)(gcd(a,m)=1)am−1≡1(modm)(m为质数时,费马小定理)解决问题类型:...原创 2019-08-02 19:43:25 · 308 阅读 · 0 评论 -
知识点 - 杜教筛
知识点 - 杜教筛解决问题类型:积性函数前缀和,做法是 将原函数和恒等函数卷积得到F,对F求前缀和并使用微扰法求出原函数前缀和。模板://注意mp<int,ll>//一般很卡常,可以考虑换语言交ll GetSum(int n) { // 算 f 前缀和的函数 ll ans = f_g_sum(n); // 算 f * g 的前缀和 // 以下这个 for 循环是整...原创 2019-09-12 19:33:04 · 166 阅读 · 0 评论 -
知识点 - 数论函数导论
知识点 - 数论进阶abstract:整除分块,积性函数,线性筛,莫比乌斯反演,迪利克雷卷积,积性函数前缀和,0.引入Gym - 101485D debugging(之后会发现,这道dp的转移方程和杜教筛的转移如出一辙。)题意有一份包含1个 bug 的n( 1≤????≤1e6)行代码,运行一次到崩溃需要的时间为 r( 1≤????≤1e9)。你可以任意行添加 printf 语句来输出调试,即你...原创 2019-09-10 20:54:58 · 583 阅读 · 0 评论 -
知识点 - 线性筛
知识点 - 线性筛原理:筛质数:埃氏筛法过程中,每个数会被其所有质因数筛一遍,导致O(nlogn)O(nlogn)O(nlogn)的复杂度。for (int i = 2; i <= n; i++) if (is_prime[i] && (long long)i * i <= n) { for (int j = i * i; j <= n;...原创 2019-09-10 20:35:40 · 267 阅读 · 0 评论 -
知识点 - 整除分块
知识点 - 整除分块1.约数个数令τ(n)\tau(n)τ(n)为n的约数个数,求其前缀和。解析若n的质因数分解为n=p1e1⋅p2e2⋯pkekn=p_1^{e_1} \cdot p_2^{e_2} \cdots p_k^{e_k}n=p1e1⋅p2e2⋯pkek,则τ(n)=(e1+1)⋅(e2+1)⋯(ek+1)\tau(n) = (e_1 + 1) \cdot (e...原创 2019-09-09 20:28:00 · 283 阅读 · 0 评论 -
分块打表 H. The Nth Item @ The 2019 Asia Nanchang First Round Online Programming Contest
分块打表 H. The Nth Item @ The 2019 Asia Nanchang First Round Online Programming Contest题意1e7次询问f(n)%998244353: n<1e18f(0)=0,f(1)=1;f(i)=3f(i−1)+2f(i−2)f(0)=0,f(1)=1;\\f(i)=3f(i-1)+2f(i-2)\\f(0)=...原创 2019-09-09 17:04:56 · 255 阅读 · 0 评论 -
知识点 - 二次剩余
知识点 - 二次剩余解决问题类型:求模意义下的平方根一些公式推导有用定义q被称作模n的二次剩余quadratic residue 当且仅当存在x使得:x2=q(mod n)x^2=q(mod\ n)x2=q(mod n)否则q被称作二次非剩余quadratic nonresidue性质两个二次剩余的乘积还是二次剩余模n的二次剩余的数量不会超过n/2 + ...原创 2019-08-15 22:29:54 · 3839 阅读 · 1 评论 -
知识点 - GCD LCM 与 扩展欧几里得
知识点 - GCD LCM 与 扩展欧几里得解决问题类型:如何求出方程的解:ax+by=cax+by=cax+by=c 推论:求模数非质数但互质的逆元结论:2.4.1 定理 上述方程有解的充要条件是 gcd(a,b)∣cgcd(a,b)|cgcd(a,b)∣c (ccc 是 gcd(a,b)gcd(a,b)gcd(a,b) 的倍数)可以理解为,gcd(a,b)gcd(a,b...原创 2019-08-09 10:40:23 · 237 阅读 · 0 评论 -
知识点 -斐波拉契数和线性递推方程取模
知识点 -斐波拉契数和线性递推方程取模解决问题类型:斐波那契数列的各种性质结论:定义(1)满足递推方程Fi=Fi−1+Fi−2,i≥3;F1=F2=1F_{i} = F_{i - 1} + F_{i - 2},i \geq 3;F_{1} = F_{2} = 1Fi=Fi−1+Fi−2,i≥3;F1=F2=1,的数列{Fn}\left\{ F_{n} \right\}{Fn}...原创 2019-08-06 10:41:06 · 551 阅读 · 0 评论 -
知识点 - n!%p和求n!中k的幂次
知识点 - n!%p n!中k的幂次解决问题类型:计算n!%p上面的式子可以用来快速算组合数求最大的k使得kx∣n!k^x|n!kx∣n!结论、代码与复杂度:计算n!%pp很大时,如果n也很大,就用威尔逊定理: O(p−n)O(p-n)O(p−n).(p−1)!+1≡0(mod p)(p-1)!+1\equiv 0(mod\ p)(p−1)!+1≡...原创 2019-08-03 22:04:40 · 1102 阅读 · 0 评论 -
知识点 - 因数之和 因数个数公式
知识点 - 因数之和 因数个数公式解决问题类型:问有几个因数,因数之和,或者问某些特定约数之和,比如不能被大于4的平方数整除的约数之和(即质因数的次数都为1)结论若对 nnn 质因数分解得到 p1e1⋅p2e2⋯pkekp_1^{e_1} \cdot p_2^{e_2} \cdots p_k^{e_k}p1e1⋅p2e2⋯pkek则有因数个数公式:d(n)=(e1+1)⋅...原创 2019-08-03 21:28:29 · 9251 阅读 · 1 评论 -
知识点 - 线性丢番图方程 Linear Diophantine Equations
知识点 - 线性丢番图方程 Linear Diophantine Equations解决问题类型:对于不定方程(a,b,c是给定参数,x,y为系数)ax+by=cax + by = cax+by=c找到一个解找到所有解找到给定区间内的解的个数和解集找到x+y最小的解推导代码及复杂度0.a = b = 0特判;a=0 or b=0 也特判找到一个解...原创 2019-08-03 21:23:19 · 2220 阅读 · 0 评论 -
知识点 - 原根
知识点 - 原根解决问题类型:求原根(最小的/全部的)高次同余方程要用NTT要用定义与结论定理6.2.1 (Zp∗,⋅)(\mathbb{Z}_p^*,\cdot)(Zp∗,⋅) 是循环群,即存在 a∈Zp∗a\in \mathbb{Z}_p^*a∈Zp∗ ,使得Zp∗={an∣n=1,2,…,p−1}\mathbb{Z}_p^*=\{a^n|n=1,2,\dots,p-1...原创 2019-08-03 20:33:38 · 2376 阅读 · 1 评论 -
知识点-模方程合集
知识点-模方程合集解决问题类型:1.线性同余方程a⋅x=b(modn)a \cdot x = b \pmod na⋅x=b(modn)2.线性同余方程组{a≡a1(modp1)a≡a2(modp2)…a≡ak(modpk)\begin{cases} a &\equiv a_1 \pmod{p_1} \\ a &\equiv a_2 \...原创 2019-08-03 19:44:53 · 757 阅读 · 0 评论 -
知识点 - 带模运算 快速模乘 各种情况模除
知识点 - 带模运算 快速模乘 各种情况模除解决问题类型:快速模乘(ab)%c=(a%c)(b%c)%c(ab)\%c=(a\%c)(b\%c)\%c(ab)%c=(a%c)(b%c)%c在计算乘法时,如果ccc 较大(但不超过64位整数范围)导致(a%c)(b%c)(a\%c)(b\%c)(a%c)(b%c)爆long long ,可以使用快速幂乘法进行计算,原理与快速幂运算类似,...原创 2019-08-02 20:57:10 · 1454 阅读 · 0 评论 -
知识点 - 素数 分解质因数
知识点 - 素数 分解质因数解决问题类型:素数距离 求 [l, r] 的素数1 <= l < r <= 2e9, r - l <= 1e6 :用小于sqrt(2e9)的质数筛[l, r] n1+n2+...=O(nlogn)\frac{n}{1}+\frac{n}{2}+...=O(nlogn)1n+2n+...=O(nlogn)hdu6287 给你数组a[n...原创 2019-08-02 20:06:35 · 444 阅读 · 0 评论 -
知识点 - 约瑟夫环(公式总结)
知识点 - 约瑟夫环(公式总结)一、nnn个人,1至m报数,问最后剩下来的人的编号公式f(n,m)=(f(n−1,m)+m)%nf(n,m) = (f(n-1,m)+m)\%nf(n,m)=(f(n−1,m)+m)%nf(0,m)=0f(0,m) = 0f(0,m)=0复杂度 O(n)O(n)O(n)代码typedef long long ll;ll calc(int n, ll ...转载 2019-09-28 21:24:52 · 2135 阅读 · 0 评论