[费马小定理]Bzoj3260 跳
2015-07-01 21:38
281 查看
坑定先走长的再走短的,当要转弯时,此时的方案书为(m为长边)c(m,m),而c(m+i,m)=c(m+i-1,m)/i*(m+i),而a^(mod-1)与1(% mod)是同余的,/i就是乘i^(mod-2)然后再mod就没区别了,这样就能的到向上(右)走的每个数,把他们加起来就行了
[code]#include<cstdio> #include<cstring> #define mod 1000000007 long long n,m,ans; void prework() { scanf("%lld%lld",&n,&m); } long long quickpow(long long a,long long b) { long long ans=1,cnt=a; while(b>0) { if(b%2) ans=(ans*cnt)%mod; cnt=(cnt*cnt)%mod; b=b/2; } return ans; } void mainwork() { long long t,x=1; if(n>m){t=n;n=m;m=t;} m=m%mod; ans=(m+1)%mod; for(long long i=1;i<=n;i++) { x=(x*(m+i))%mod; x=(x*quickpow(i,mod-2))%mod; ans=(ans+x)%mod; } } void print() { printf("%lld",ans); } int main() { prework(); mainwork(); print(); return 0; }
相关文章推荐
- C#RAS加密算法
- bzoj 3998: [TJOI2015]弦论
- PortQry
- JavaScript中的数组
- 成功CRS启动的系统日志
- 神经网络中的Early Stop
- 【LeetCode 201】Bitwise AND of Numbers Range
- Stanford UFLDL教程 池化Pooling
- 前端优化:DNS预解析提升页面速度
- 【组合】Bzoj3142 数列[HNOI2013]
- ListView设置emptyView的限制
- 程序员必须知道的8大排序和3大查找
- 黑马day11 装饰类
- Hadoop中两表JOIN的处理方法
- unity 随笔
- Android Busybox 下的adb,linux shell命令整理备忘 (2012-03-06 21:41:27)
- 仿51用车 Ipad版
- 1012. 数字分类 (20)
- LeetCode之Longest Palindromic Substring
- 迭代器