您的位置:首页 > 其它

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

2014-11-22 11:05 218 查看
错排问题。

先从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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: