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;

  }

posted @ 2012-08-03 21:21  时光旅行的懒猫  阅读(169)  评论(0编辑  收藏  举报