卢斯卡定理模板(大数组和)
来源:互联网 发布:mac 小红点 编辑:程序博客网 时间:2024/04/30 13:28
#include<stdio.h>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>using namespace std;__int64 p;__int64 jieji[200005];__int64 ppow(__int64 n,__int64 m){ __int64 s=1,k=n%p; while(m>0) { if(m&1) { s=(s*k)%p; } k=(k*k)%p; m>>=1; } return s;}__int64 zuhe(__int64 n,__int64 m){ if(m==0) return 1; __int64 s=1; __int64 q,f; while(n>0&&m>0) { q=n%p; f=m%p; if(q<f) return 0; s=((s*jieji[q])%p*ppow((jieji[f]*jieji[q-f])%p,p-2))%p; n=n/p; m=m/p; } return s;}int main(){ __int64 n,m,t,k; int i; cin>>t; while(t--) { scanf("%I64d%I64d%I64d",&n,&m,&p); jieji[0]=1; jieji[1]=1; for(i=2;i<=p;i++) jieji[i]=(jieji[i-1]*i)%p; k=zuhe(n+m,n); printf("%I64d\n",k); } return 0;}
0 0
- 卢斯卡定理模板(大数组和)
- 求大组合数取模的模板(lucas定理)
- 中国剩余定理模板(互质版和非互质版)
- HDU 1215 七夕节 【约数和定理&&唯一分解定理(模板)】
- 数论快速入门(同余、扩展欧几里德、中国剩余定理、大素数测定和整数分解、素数三种筛法、欧拉函数以及各种模板)
- 数论快速入门(同余、扩展欧几里德、中国剩余定理、大素数测定和整数分解、素数三种筛法、欧拉函数以及各种模板)
- 中国剩余定理(模板)
- 中国剩余定理(模板)
- [模板]-卢卡斯(Lucas)定理
- (模板)后缀数组(lcp和rmq)
- 约数定理(约数个数定理,约束和定理)
- poj-2409(polya定理模板)
- 组合数取模(卢卡斯定理、模板)
- 费马小定理+逆元(模板)
- HDU3037Saving Beans(lucas定理模板)
- 【Luogu3807】【模板】卢卡斯定理(数论)
- 大数值和数组
- Lucas定理(大组合数取模)
- 最长递增子序列模板
- LCA在线算法
- UINavigationController 和 UIScrollView新特性
- oracle JRockit 介绍
- 数据挖掘十大经典算法
- 卢斯卡定理模板(大数组和)
- rsync+inotify实时同步
- windows下通过cygwin来使用hadoop
- jdbc连接数据库的步骤
- 金山网络实习生面试经历
- polay定理
- 复选框控件CheckBox(选择类控件)
- 第六周作业
- 泛型的Binary Search Tree的实现,并与STL map进行操作性能上的比较