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;

  }

你可能感兴趣的:(grid)