lucas定理模板
来源:互联网 发布:mac鼠标玩lol 编辑:程序博客网 时间:2024/06/03 10:22
适用于求组合数C(n,n+m), n,m<10^18,
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>using namespace std;typedef long long lld;lld n, m, p;lld Ext_gcd(lld a,lld b,lld &x,lld &y){ if(b==0) { x=1, y=0; return a; } lld ret= Ext_gcd(b,a%b,y,x); y-= a/b*x; return ret;}lld Inv(lld a,int m){ ///求逆元 lld d,x,y,t= (lld)m; d= Ext_gcd(a,t,x,y); if(d==1) return (x%t+t)%t; return -1;}lld Cm(lld n, lld m, lld p) ///组合数学{ lld a=1, b=1; if(m>n) return 0; while(m) { a=(a*n)%p; b=(b*m)%p; m--; n--; } return (lld)a*Inv(b,p)%p; ///(a/b)%p 等价于 a*(b,p)的逆元}int Lucas(lld n, lld m, lld p) ///把n分段递归求解相乘{ if(m==0) return 1; return (lld)Cm(n%p,m%p,p)*(lld)Lucas(n/p,m/p,p)%p;}int main(){ while(scanf("%lld%lld%lld",&n,&m,&p)) { if(n==0&&m==0&&p==0) break; printf("%d\n",Lucas(n+m,m,p)); } return 0;}
0 0
- Lucas 定理 模板
- [数学] Lucas定理模板
- lucas定理模板
- lucas定理 模板
- 【模板】Lucas定理
- Lucas定理模板
- Lucas定理模板
- bzoj4403 lucas定理模板
- lucas定理模板
- Lucas定理模板
- 【模板】组合数求余--lucas定理
- hdu 3037 Lucas定理模板
- [模板]-卢卡斯(Lucas)定理
- Lucas定理模板【bzoj2982】【combination】
- fzu 2020 Lucas 定理,组合数求模模板
- Lucas+阶乘打表+费马小定理模板
- 【数论】Lucas定理推导过程+模板
- HDU3037Saving Beans(lucas定理模板)
- [笔记] C语言 轻量级字符串操作 函数 CpyString,CpyBytes,CatString,StrLen
- Android内存泄漏
- Jquery中对数组的操作
- android webview设置自适应任意大小的pc网页
- 【Java】-基础-Swing介绍
- lucas定理模板
- 二分匹配 HDU2119 Matrix
- oracle 学习笔记(五)
- Android休眠唤醒和wakeup_source机制的使用(2)
- 基本通信协议之——SOAP
- AngularJs学习笔记__5、内置过滤器
- 发小今年毕业了
- Software Architecture Has Ethical Consequences
- Eclipse常用设置