首页 > 其他 > 详细

hdu 2049 考新郎

时间:2015-11-13 00:53:29      阅读:332      评论:0      收藏:0      [点我收藏+]

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

 

和之前那道题一样,是错排,但是要乘上排列数。

 

选对的人有C(N,M)个组合,将它们排除掉,剩下的人就是错排了

 

 1 #include<iostream>
 2 #include<cmath>
 3 #include<iomanip>
 4 using namespace std;
 5 
 6 long long fact(int n)
 7 {
 8           long long sum =1;
 9           while(n>0)
10                     sum*=n--;
11           return sum;
12 }
13 
14 
15 int main()
16 {
17           int n;
18           cin>>n;
19           while(n--)
20           {
21                     int m,n;
22                     cin>>m>>n;
23                     long long a[21];
24                     a[1] = 0;
25                     a[2] = 1;
26                     for(int i = 3;i<=n;i++)
27                     {
28                               a[i] = (i-1)*(a[i-1]+a[i-2]);
29                     }
30                     cout<<a[n]*fact(m)/(fact(n)*fact(m-n))<<endl;
31           }
32 }

 

hdu 2049 考新郎

原文:http://www.cnblogs.com/qlky/p/4960581.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!