组合数的求法 (n<=1e8 可以过来看)
摘要:C(n,m) =n!/(m!* (n-m)! ); o(n) 求 1-m的逆元 o(n) 求 n的阶乘 代码实现 https://www.cnblogs.com/linyujun/p/5194189.html
阅读全文
gcd(1,n)+gcd(2,n)....gcd(n-1,n); Uva11426
摘要:#include #define int long long using namespace std; const int maxn=4e6+100; int phi[maxn]; int prime[maxn]; int visit[maxn]; int tot=0; int num[maxn]; int ans[maxn]; void build_phi(int n) { phi[1...
阅读全文
乘法逆元
摘要:关于乘法逆元 a*b=1( mod p ) a是b关于p的乘法逆元 (1) 解决除法不能取摸的问题 (a + b) % p = (a%p + b%p) %p (对) (a - b) % p = (a%p - b%p) %p (对) (a * b) % p = (a%p * b%p) %p (对) (
阅读全文
欧拉函数 已经优化到o(n)
摘要:欧拉函数 ψ(x)=x*(1-1/pi) pi为x的质数因子 特殊性质(图片内容就是图片后面的文字) 欧拉函数是积性函数——若m,n互质, ψ(m*n)=ψ(m)*ψ(n); 当n为奇数时, ψ(2*n)=ψ(n); 若n为质数则 ψ(n)=n-1; 代码实现求欧拉函数 复杂度O(n*n) (有优化
阅读全文
莫比乌斯函数 性质
摘要:莫比乌斯函数的形式就是这样 其中p1-pk 为不相同的质数 性质 : 如果μ(n)=1; 除了n=1时 1-n的和为1 其他都为0; 线筛求莫比乌斯函数
阅读全文
质数的筛选( 主要介绍 筛法 线性筛 )(有好的方法后续会补上 未完待续)
摘要:一 埃拉托斯特尼筛法(思路非常好 就是复杂度有点高 )( o(nlognlogn) ) 原理 质数的倍数不是质数 一个数不是比他小的数(1除外)的倍数这个数是质数。 2是质数 4,6,8,10....不是质数(打个标记) 3是质数(没有被标记) ,6,9,....不是质数(同样打标记) 4不是质数(
阅读全文
数组形式的 字典树 指针版本
摘要:#include #include #include #include using namespace std; int tot=0; struct node { int next[2]; int tf; }a[1000005]; int root=0 ; int buildtrie(string ss) { int p=root; int l=ss.size()...
阅读全文