hdu 2049

时间:2023-03-08 21:17:05

Ps:WA了无限次...简直做到崩溃..高中学的知识都忘了....这道题就是跟2048差不多..

从N个人里选M个人,有Cmn种选法,然后就是M的错排*Cnm

代码:

#include "stdio.h"

long long dp[20];

int main(){  int n,m,i,j,a;

long long sum,x,y,z;

dp[0]=0;

dp[1]=1;

for(i=2;i<20;i++)

dp[i]=i*(dp[i-1]+dp[i-2]);    //m个错排*Cnm  n=m-n;

while(~scanf("%d",&a)){

for(i=0;i<a;i++){

scanf("%d%d",&n,&m);

x=y=z=1;

for(j=1;j<=n;j++)

x*=j;

for(j=1;j<=m;j++)

y*=j;

for(j=1;j<=n-m;j++)

z*=j;

sum=x/(y*z);

sum=sum*dp[m-1];

printf("%lld\n",sum);

}

}

return 0;

}