hdu2049 不容易系列之(4)——考新郎

题意:假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.

分析:和前面那题hdu 2048求M 错排,递推式一样,只是再加上一个 组合数 C 的求法,因为 在N里 的某M个,CnM;

#include<cstdio>
#include<cstring>
using namespace std;
long long a[22];
int main()
{
    a[1]=0,a[2]=1,a[3]=2;
    for(int i=4;i<=20;i++)
        a[i]=(i-1)*(a[i-1]+a[i-2]);
    int T;scanf("%d",&T);
    while(T--)
    {
        int n,m;
        scanf("%d %d",&n,&m);
        long long ans=1;
        for(int i=n;i>(n-m);i--) ans*=i;
        for(int i=m;i>=1;i--) ans/=i;
       // printf("%lld %lld\n",ans,a[m]);
        ans*=a[m];
        printf("%lld\n",ans);
    }
}

你可能感兴趣的:(hdu2049 不容易系列之(4)——考新郎)