题目链接:http://poj.org/problem?id=1942
题意:在一个n*m的方格地图中,从(0,0)开始只能向上或者想右走,问有多少种方法能走到(n,m);
我自己手推的公式(n+m)!/(n!*m! );
需要优化一下程序,要不会wa;
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
ll n,m;
while(~scanf("%lld %lld",&n,&m),n||m)
{
if(n>m) swap(n,m);
ll ans=1,b=1;
for(ll i=m+1;i<=m+n;i++)
{
ans=ans*i/b;
b++;
}
printf("%lld\n",ans);
}
return 0;
}