HDU2049 不容易系列之(4)——考新郎 错排问题

来源:互联网 发布:双飞燕奥斯卡软件 编辑:程序博客网 时间:2024/05/21 09:50

错排问题。

先从n对新人中找出n-m对找对新娘的人,然后把剩下的m对错位排列一下,然后乘法原理把两个数相乘即可。

n和m的范围不大,打表即可。

#include <cstdio>#include <iostream>using namespace std;int main(){    int t,n,m,i,j;    long long f[25],c[25][25]={{0,1}};    f[0]=1;    f[1]=0;    f[2]=1;    for(i=3;i<=21;i++)      f[i]=(i-1)*(f[i-1]+f[i-2]);    for(i=1;i<=21;i++)      for(j=1;j<=i+1;j++)          c[i][j]=c[i-1][j-1]+c[i-1][j];    cin>>t;    while(t--)    {        scanf("%d%d",&n,&m);        cout<<c[n][n-m+1]*f[m]<<endl;;    }    return 0;}

0 0
原创粉丝点击