【POJ 1942】 Paths on a Grid

【POJ 1942】 Paths on a Grid


一共要走m+n步 C(n,m+n) 即可求出方案数 为防止超时 要始终保证n最小 为了防止WA 要用unsigned并且 n||m。。。坑点就是n m 可能有一个为0 也要输出。。。


代码如下:


<span style="font-size:14px;">#include <iostream>
#include <cstdio>

using namespace std;

#define ll long long

int main()
{
    ll n,m,ans,i,t;

    while(~scanf("%lld %lld",&n,&m) && n || m)
    {
        if(m < n)
        {
            t = n;
            n = m;
            m = t;
        }
        ++m;
        ans = 1;
        for(i = 1; i <= n; ++i,++m)
        {
            ans = (ans*m)/i;
        }
        printf("%lld\n",ans);
    }

    return 0;
}
</span>


你可能感兴趣的:(【POJ 1942】 Paths on a Grid)