hdu 3037
2015-11-09 21:31
267 查看
收一份长得还行的模板
#include<iostream> #include<cstdio> using namespace std; __int64 jc[100010]; __int64 exgcd(__int64 a,__int64 b,__int64 &x,__int64 &y){ if(b==0) return x=1,y=0,a; __int64 res=exgcd(b,a%b,y,x); y-=a/b*x; return res; } __int64 Inv(__int64 a,__int64 mod){ __int64 x,y; exgcd(a,mod,x,y); return (x%mod+mod)%mod; } __int64 C(__int64 n,__int64 m,__int64 mod){ if(m>n) return 0; __int64 ret= jc ; ret*= Inv((jc[m]*jc[n-m])%mod,mod); return ret%mod; } __int64 Lucas(__int64 n,__int64 m,__int64 mod){ if(m==0) return 1; return C(n%mod,m%mod,mod)*Lucas(n/mod,m/mod,mod)%mod; } int main() { int i,j,k,N,M,n,mod,T; scanf("%d",&T); while(T--) { scanf("%d%d%d",&N,&M,&mod); for(jc[0]=1,i=1;i<=mod;i++) jc[i]=jc[i-1]*i%mod; printf("%I64d\n",Lucas(N+M,N,mod)); } return 0; }
相关文章推荐
- 华硕(ASUS)X554LP笔记本在64位win7下无线网络连接问题
- 1109课堂内容整理
- sinlinx独家发布Linux-Qt 之Linux软件的编译
- 制作生成静态页面的新闻系统
- php发送get 4000 、post请求的几种方法
- LightOJ 1410 - Consistent Verdicts (判断去重)
- linux新增特性timerfd
- HttpClient 讲解 (2) 项目封装
- ubuntu在系统启动无法进入桌面的处理方法
- Node.js实践HTTP安全认证之三~~摘要认证(实践)
- <仅是自己做笔记。。。系列-14>输入两个整数序列。其中一个序列表示栈的push顺序, 判断另一个序列有没有可能是对应的pop顺序。
- 二叉树的建立和遍历(递归、非递归)
- 响应式网页
- c#??操作符
- 数据库大数据访问的解决方法
- DOxygen for C++使用说明——注释代码二
- 字符串匹配(算法导论)
- MediaPlayer的使用
- iOS UITextField控件总结
- HDU3518 后缀数组求不可重叠重复出现的不同子串个数