您的位置:首页 > 其它

51nod 1119 机器人走方格 V2组合数

2016-09-20 19:29 363 查看
1119机器人走方格V2
基准时间限制:1秒空间限制:131072KB分值:10难度:2级算法题

M*N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod10^9+7的结果。

Input
第1行,2个数M,N,中间用空格隔开。(2<=m,n<=1000000)

Output
输出走法的数量Mod10^9+7。

Input示例
23

Output示例
3


#include<iostream>
#include<cstdio>

usingnamespacestd;
typedeflonglongLL;
constintp=1e9+7;
LLquick_mod(LLa,LLb){
LLans=1;
a%=p;
while(b){
if(b&1){
ans=ans*a%p;
b--;
}
b>>=1;
a=a*a%p;
}
returnans;
}

LLC(LLn,LLm){
if(m>n)return0;
LLans=1;
for(inti=1;i<=m;i++){
LLa=(n+i-m)%p;
LLb=i%p;
ans=ans*(a*quick_mod(b,p-2)%p)%p;
}
returnans;
}
LLLucas(LLn,LLm){
if(m==0)return1;
returnC(n%p,m%p)*Lucas(n/p,m/p)%p;
}
intmain(){
intk,T,n,m;
scanf("%d%d",&n,&m);
printf("%I64d\n",C(n+m-2,m-1));
return0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: