[模板]-卢卡斯(Lucas)定理
来源:互联网 发布:淘宝维修售后怎么处理 编辑:程序博客网 时间:2024/05/21 07:01
问题描述:
给定n,m,p(1≤n,m,p≤105)
求 Cn+mm mod p
保证P为prime
C表示组合数。
代码:
long long n,m,p,fac[100010];void fact()//计算1到p的阶乘并对p取模{ fac[0] = 1; for(int i = 1; i <= p; ++i) fac[i] = fac[i - 1] * i % p;}long long QuickPower(long long a,long long n)//快速幂,对p取模{ long long ans = 1; while(n > 0) { if(n & 1) ans = ans * a % p;// mod!!! n /= 2; a = a * a % p;// mod!!! } return ans;}long long C(long long n,long long m)//组合数{ if(m > n) return 0; return fac[n] * QuickPower(fac[m] * fac[n - m],p - 2) % p;}long long Lucas(long long n,long long m)//卢卡斯定理{ if(m == 0) return 1; return (C(n % p,m % p) * Lucas(n / p,m / p)) % p;//递归}int main(){int _;cin >> _;while(_--) { scanf("%lld%lld%lld",&n,&m,&p); fact();//位置 printf("%lld\n",Lucas(n + m,m)); } return 0;}
阅读全文
0 0
- [模板]-卢卡斯(Lucas)定理
- 卢卡斯定理(Lucas)
- HDU3037Saving Beans(lucas定理模板)
- Lucas 定理 模板
- [数学] Lucas定理模板
- lucas定理模板
- lucas定理 模板
- 【模板】Lucas定理
- Lucas定理模板
- Lucas定理模板
- bzoj4403 lucas定理模板
- lucas定理模板
- Lucas定理模板
- 数论-Lucas(卢卡斯定理)
- 【模板】组合数求余--lucas定理
- hdu 3037 Lucas定理模板
- Lucas定理模板【bzoj2982】【combination】
- hdu 3037 Saving Beans(lucas定理模板)
- Sun JDK 监控和故障处理工具
- Amos多组分析
- 按字节编址与按字编址
- 55分钟学会正则表达式
- 51Nod
- [模板]-卢卡斯(Lucas)定理
- 链表预备知识
- 中国智慧生活博览会(CEE 2017)—数字世界亚洲博览会会刊(参展商名录)
- PHP与正则表达式 | 黄乔国PHP
- 多线程串口接收数据 | 全局变量的使用
- 九大排序算法的总结与C++实现
- CSS中的盒子相关属性,盒子到底有多大
- Javascript类(对象)定义问题
- 基于java的开源论坛jforum的安装及简介