POJ 1942 Paths on a Grid
题目链接http://poj.org/problem?id=1942
题意 输入边长 有多少种走法
思路 组合数模板
View Code
1 #include<stdio.h> 2 int main() 3 { 4 __int64 n,m,s,t,i,sum; 5 while(~scanf("%I64d%I64d",&n,&m)) 6 { 7 if(n==0&&m==0) 8 { 9 break; 10 } 11 if(n>m) 12 s=m; 13 else 14 s=n; 15 sum=1; 16 t=n+m; 17 for(i=1;i<=s;i++) 18 { 19 sum=sum*t/i; 20 t--; 21 } 22 printf("%I64d\n",sum); 23 } 24 return 0; 25 }
模板
求组合数:
int C(int n,int m)
{
int ans=1,a,b,r;
for(int i=0;i<m;i++)
{
a=n-i; b=i+1;
r=gcd(a,b);
a/=r; b/=r;
ans=ans*a/b;
}
return ans;
}