一共要走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>