HDU 2049 错排变种
2015-11-01 14:40
162 查看
题目
不容易系列之(4)——考新郎Problem Description
国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做”考新郎”,具体的操作是这样的:
首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排; 然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个.
最后,揭开盖头,如果找错了对象就要当众跪搓衣板…
看来做新郎也不是容易的事情…
假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C行数据,每行包含两个整数N和M(1 < M < =N < =20)。
Output 对于每个测试实例,请输出一共有多少种发生这种情况的可能,每个实例的输出占一行。
Sample Input
2
2 2
3 2
Sample Output
1 3
题意
依旧是错排问题 不过是m中对N的错排在HUD 2048中我们可以看到 最终的几率问题是所有的(错排数) / m!
这一题类比 总数由 m! 变为 C(n, m);
此处注意 应用 f(m)* c(n, m)
依然贴代码
#include<stdio.h> __int64 sum[21],f[21]; int main() { int i,t,n,m; f[0]=0;f[1]=0;f[2]=1; sum[0]=1;sum[1]=1; for(i=2;i<=20;i++) { sum[i]=sum[i-1]*i; if(i>=3) f[i]=(i-1)*(f[i-1]+f[i-2]); } scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); printf("%I64d\n",sum /sum[m]/sum[n-m]*f[m]); } return 0; }
相关文章推荐
- PV EV AC BAC EAC ETC等计算公式
- AD-Powershell for Active Directory Administrators
- AC
- Get the SID of an Active Directory User
- 华为交换机批量设置端口trunk或者access
- YII框架中的Relational Active Record 关联操作
- NAC在企业中的典型应用
- hdoj 2048 神、上帝以及老天爷(错排问题)
- hdu1465 不容易系列之一(错排)
- AC算法的C语言实现
- AC
- AC算法
- HDU2049
- prime ring problem回溯法
- Ac简单题-Milking Cow
- uva10487
- linux安全-系统记账
- uva10975 trie树or ac自动机
- 错排公式
- HDU-1465错排