Lucas求大数组合数模板
2015-07-23 15:52
330 查看
void init() { int i; fac[0] =1; for(i =1; i <= p; i++) fac[i] = fac[i-1]*i % p; } llg pow(llg a, llg b) { llg tmp = a % p, ans =1; while(b) { if(b &1) ans = ans * tmp % p; tmp = tmp*tmp % p; b >>=1; } return ans; } llg C(llg n, llg m) { if(m > n) return0; return fac *pow(fac[m]*fac[n-m], p-2) % p; } llg Lucas(llg n, llg m) { if(m ==0) return1; elsereturn (C(n%p, m%p)*Lucas(n/p, m/p))%p; }
void init() { p[0] = p[1] = I[0] = I[1] = 1; for (int i = 2 ; i < N ; ++ i) I[i] = (Q - Q / i) * I[Q % i] % Q; for (int i = 2 ; i < N ; ++ i) { p[i] = p[i - 1] * i % Q; I[i] = I[i - 1] * I[i] % Q; } } LL C(int x , int y) { return p[x] * I[y] % Q * I[x - y] % Q; }
相关文章推荐
- [SoapUI] SoapUI命令行方式运行
- Burp修改response欺骗
- hdu1863 畅通工程(判定最小生成树)
- ip subnet-zero
- Json概述以及python对json的相关操作《转》
- 面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
- Encoding encoding = Encoding.GetEncoding("gb2312"); 与byte[] ping = Encoding.UTF8.GetBytes(inputString);区别
- 【linux】gdb调试
- sersync+rsync原理及部署
- android TextView 显示字数的限制问题
- 学习javaWeb开发-Servlet
- IOS And WCF 上传文件
- 腾讯云移动推送信鸽后台探秘:海量终端 秒级送达
- HDU 1698 Just a Hook(线段树+lazy)
- 矩阵求逆
- 合并排序的递归实现
- iOS 自己封装的网络请求,json解析的类
- STM32启动文件2.02过程详解
- 再会鸟哥LINU
- 关于数据库迭代更新