杭电2049
此题也是一道组合数递推问题,递推规律同2048,记住规律仍然是a[i]=(i-1)*(a[i-1]*a[i-2]);只是最后乘以组合数Cmn
#include<iostream>
using namespace std;
int main()
{
int n,c,b,i;__int64 a[25],d,e,r,f;
cin>>n;
getchar();
while(n--)
{
d=1;
e=1;
cin>>c>>b;
a[1]=0;
a[2]=1;
a[3]=2;
for(i=4;i<=b;i++)
a[i]=(i-1)*(a[i-2]+a[i-1]);
f=r=b;
for(i=c;r>0;r--,i--)
d=d*i;
for(i=f;f>0;f--,i--)
e=e*i;
printf("%I64d\n",d/e*a[b]);
}
return 0;
}
联系方式