卢卡斯定理
来源:互联网 发布:淘宝御泥坊官网 编辑:程序博客网 时间:2024/06/06 02:16
Lucas定理:我们令n=sp+q , m=tp+r .(q ,r ≤p),p为素数
那么:
int Lucas (ll n , ll m , int p) { return m == 0 ? 1 : 1ll*comb (n%p , m%p , p) * Lucas (n/p , m/p , p) % p ;}//comb()函数中,因为q , r < p , 所以这部分暴力完成即可。 // C++// 求C(n, m) mod 10007 版本二 要求p z在100000左右LL f[N]; //N为组合数的底数 的范围void init(int p){f[0] = 1;for(int i = 1; i <= p; ++i)f[i] = f[i-1] * i % p;}LL pow_mod(LL a, LL x, int p){LL ret = 1;a %= p;while(x){if(x & 1){ret = ret * a % p;--x;}else{a = a * a % p; x >>= 1;}}return ret;}LL Lucas(LL n, LL k, int p){LL ret = 1;while(n && k){LL nn = n % p, kk = k % p;if(nn < kk) return 0;ret = ret * f[nn] * pow_mod(f[kk] * f[nn - kk] % p, p - 2, p) % p;n /= p;k /= p;}return ret;}
</pre><pre code_snippet_id="1660586" snippet_file_name="blog_20160425_1_5341677" name="code" class="cpp">相关题目:
1. hdu3037 saving beans;
0 0
- 【数论定理】卢卡斯定理
- 卢卡斯定理
- 卢卡斯定理
- 卢卡斯定理
- 卢卡斯定理
- 卢卡斯定理&扩展卢卡斯定理
- Saving Beans (卢卡斯定理)
- 卢卡斯(Lucas)定理
- 卢卡斯定理(Lucas)
- HDU 3037:卢卡斯定理
- 【模板】卢卡斯定理
- 卢卡斯定理 洛谷p3807
- 定理
- 定理
- cf451E Devu and Flowers 卢卡斯定理+容斥定理
- hdu 3037 Saving Beans(lucas定理)(卢卡斯定理)
- [卢卡斯定理+中国剩余定理] hdu 5446 Unknown Treasure
- 组合数模板+ 卢卡斯定理
- 【Get深一度】信号处理(一)——能量信号与功率信号的区别
- warning: no umbrella header found for target 'xxxxx', module map will not be generated
- Myeclipse中导入项目后WebRoot报错了
- node.js http服务
- angular api
- 卢卡斯定理
- (转载)hive文件存储格式
- APUE------进程关系
- Spinner的添加
- SQL查询优化:如何写出高性能SQL语句
- 合并两个排序的链表
- 智能指针的发展
- 序列化与反序列化---RPC
- vim设置