模板整理
2015-09-18 10:31
288 查看
逆元
1.扩展gcd求逆元void ex_gcd(LL a , LL b , LL& d , LL &x , LL &y) { if(b == 0) { x = 1 , y = 0 ; d = a ; return ; } ex_gcd(b , a%b , d , y , x) ; y -= x*(a/b) ; } //求模n下a的逆元 LL inv(LL a , LL n) { LL d , x , y ; ex_gcd(a , n , d , x , y) ; return d == 1 ? (x+n)%n : -1 ; // notice x+n }
2.递推求逆元
int inv ; void get_inv(int n, int p) { inv[1] = 1; for (int i = 2; i <= n; ++i) { inv[i] = (p - p / i) * inv[p % i] % p; } }
素数筛法
bool isp ; int prime ; int np ; void getPrime() { memset(isp , true , sizeof(isp)) ; np = 0 ; for(int i = 2 ; i < N ; ++i) { if(isp[i]) prime[np++] = i ; for(int j = 0 ; j < np ; ++j) { if(prime[j]*i >= N) break ; isp[prime[j]*i] = false ; if(i%prime[j] == 0) break ; } } }
欧拉函数
int phi ; void getPhi() { memset(phi , 0 , sizeof(phi)) ; phi[1] = 1 ; for(int i = 2 ; i < N ; ++i) { if(phi[i] == 0) { for(int j = i ; j < N ; j += i) { if(phi[j] == 0) phi[j] = j ; phi[j] = phi[j]/i*(i-1) ; } } } }
莫比乌斯函数
int mu ; int prime ; bool isp ; int np ; void getMu() { memset(isp , true , sizeof(isp)) ; mu[1] = 1 ; np = 0 ; for(int i = 2 ; i < N ; ++i) { if(isp[i]) { prime[np++] = i ; mu[i] = -1 ; } for(int j = 0 ; j < np ; ++j) { if(i*prime[j] >= N) break ; isp[i*prime[j]] = false ; if(i%prime[j]) mu[i*prime[j]] = -mu[i] ; else { mu[i*prime[j]] = 0 ; break ; } } } }
组合数取模
1.预处理,求C(n , k)%Mod n <= 1e6const int N = 2e5 + 11 ; const int Mod = 1e9 + 7 ; LL inv ;//递推求x的逆元 LL fac ;//阶乘 LL rfc ;//递推求x!的逆元 void init() { inv[0] = inv[1] = 1 ; fac[0] = fac[1] = 1 ; rfc[0] = rfc[1] = 1 ; for(int i = 2 ; i < N ; ++i) { inv[i] = ((Mod- Mod/i)*inv[Mod%i])%Mod ; fac[i] = (fac[i-1]*i)%Mod ; rfc[i] = (rfc[i-1]*inv[i])%Mod ; } } LL com(LL n , LL k){ return (fac *rfc[k]%Mod)*rfc[n-k]%Mod ; }
相关文章推荐
- C/C++__typedef用法
- JQuery自定义动画animate方法
- 使用HIBERNATE调用自定义函数
- XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法
- ASP 编码转换(乱码问题解决)
- 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式
- OC基础教程4-Foundation 框架介绍
- 小京东等产品后台版权及logo修改教程[ecshop二次开发]
- iOS实用技巧 - AFNetworking2安全的使用自签证书访问HTTPS
- 使用AppCompat支持包时自定义ActionBar颜色的要点
- (2.1.2.5)线程池的原理及实现
- TCP/IP阻塞控制机制
- grails Tags
- IOS的APP上线注意事项
- UILabel自动换行
- Groovy创建和解析json
- grails自定义标签
- Json和xml的优缺点
- 设计模式(简单工厂模式)
- idea改字体大小