Lucas模板&快速幂模板
2016-07-29 15:40
316 查看
/* *********************************************** Author :guanjun Created Time :2016/5/20 0:28:36 File Name :hdu5698.cpp ************************************************ */ #include <iostream> #include <cstdlib> #include <stdio.h> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #define ll long long #define MOD 1000000007 #define INF 0x3f3f3f3f #define maxn 200010 using namespace std; ll fac[maxn],inv[maxn]; ll Pow(ll a,ll n,ll m){ ll ans=1; while(n) { if(n&1) { ans*=a; ans%=m; } a=a*a%m; n>>=1; } return ans; } ll C(ll n,ll m,ll p){ ll res=1; while(n&&m){ ll a=n%p; ll b=m%p; if(a<b)return 0; res=res*fac[a]%p*Pow(fac[b]*fac[a-b]%p,p-2,p)%p; n/=p; m/=p; } return res; } void init(){ fac[0]=1; inv[0]=1; for(int i=1;i<=maxn;i++){ fac[i]=fac[i-1]*i%MOD; inv[i]=Pow(fac[i],MOD-2,MOD);//费马小定理,要求MOD为素数 } } int main() { init(); ll n,m; while(cin>>n>>m){ printf("%I64d\n",C(n,m,MOD)); } return 0; }
解析:http://blog.sina.com.cn/s/blog_b9a401a40101dghn.html
相关文章推荐
- JXL导出EXCEL 笔记
- iOS QQ实现第三方登录以及遇到的问题
- JS每隔1秒输出一组新的随机数
- zookeeper windows 入门安装和测试
- C/C++语言学习计划
- Ext.ComponentQuery.query()
- 三层架构-软件编程之三层架构
- Java的开发准备及环境配置
- 宏函数与自定义函数的区别(面试总结)
- 使用ffepeg进行视频转码
- 栈之一般表达式转换成后缀式
- IT十八掌第四天课程
- win10 uwp 上传Nuget 让别人用我们的库
- 【HDU5728 PowMod】【欧拉函数+指数循环节】【欧拉函数积性性质+无穷幂迭代】
- collections.sort 中文排序 降序
- 工作流引擎
- QQ、新浪、微信使用友盟第三方登录需注意(5.0之前)
- Android开源控件网址
- Centos 7 kickstart的脚本
- olr 5.x的筹建(Solr自带的Jetty Server)与mmseg4j中文分词