此题也是一道组合数递推问题,递推规律同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;}