HDUOJ 不容易系列之(4)——考新郎
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2049
一开始我的想法就是使用错排公式,先使用全排列从N对中选出M对,然后再使用错排对选出的M对进行错排计算,最后二者相乘。
emmm,代码写得很丑,只是提供一个思路,遇到类似的题目可以多一个思考方向。
D(n) = (n-1) [D(n-2) + D(n-1)]
特殊地,D(1) = 0, D(2) = 1.
详细推导过程百度一下你就知道。
1 /*使用数学公式的思路比较简单,在N对中选择M对出来,也即是全排列的C(N,M),然后对这M对进行全错排,结果再将二者相乘;*/ 2 #include <iostream> 3 using namespace std; 4 int D(int n) //全错排; 5 { 6 if(n==1) 7 return 0; 8 if(n==2) 9 return 1; 10 else return 11 (n-1)*(D(n-1)+D(n-2)); 12 } 13 int C(int n,int m) //全排列 14 { 15 if(m==0) 16 return 1; 17 if(n==m) 18 return 1; 19 else return C(n-1,m)+C(n-1,m-1); 20 } 21 int main() 22 { 23 int i,n,m; 24 cin>>i; 25 int N,M; //N是新人对数,M是找错的新郎数; 26 27 while(i--) 28 { 29 cin>>N>>M; 30 if(M==1) 31 { 32 cout<<1<<endl; 33 continue; 34 } 35 if(N<M) 36 { 37 cout<<"Wrong Input!"<<endl; 38 continue; 39 } 40 else 41 { 42 m=D(M); 43 n=C(N,M); 44 if(N==M) 45 cout<<m<<endl; 46 else 47 cout<<m*n<<endl; 48 } 49 } 50 return 0; 51 }
转载于:https://www.cnblogs.com/Guhongying/p/9070102.html
HDUOJ 不容易系列之(4)——考新郎相关推荐
- HDU2049 不容易系列之(4)——考新郎【递推】
不容易系列之(4)--考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- HDU2049 不容易系列之(4)——考新郎
国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样 ...
- 不容易系列之(4)——考新郎
Problem Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样 ...
- HDOJ 2049 不容易系列之(4)——考新郎
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 Problem Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚 ...
- V - 不容易系列之(4)――考新郎(第二季水)
Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: ...
- HDU - 2049 不容易系列之(4)——考新郎(错排问题+组合数学)
题目链接:点击查看 题目大意:有n对新婚夫妇,有m个新郎找错了新娘,问发生这种情况的可能 题目分析:匹配错误问题可以类比于全错排问题,这里插眼放一个讲的不错的博客: https://blog.csdn ...
- hdu 2049 不容易系列之(4)——考新郎 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 写这篇解题报告时 我真的很气愤 对自己又一次犯下低级错误改了两个小时 int型的数据居然用%I6 ...
- hdu 2049 不容易系列之(4)——考新郎
在本博AC代码中,求CNM用的是Anm/amm没用阶乘的形式,两者皆可 #include <stdio.h> int main(void) {long long a,b,larr[21]; ...
- HDU 2049 不容易系列之(4)——考新郎( 错排 )
链接:传送门 思路:错排水题,从N个人中选出M个人进行错排,即 C(n,m)*d[m] 补充:组合数C(n,m)能用double计算吗?第二部分有解释 Part 1. 分别求出来组合数的分子和分母然后 ...
最新文章
- Linux程序包管理(yum)
- linux nodejs环境部署,Linux 部署Nodejs 环境 (自学记录篇)
- JavaScript中的正则
- 22021年江苏高考成绩查询,江苏高考成绩查询系统入口
- 无损1080i到1080p是如何制作的
- 计算一个文件下的所有视频总时长
- python 圆周率_圆周率 python
- python 中英文 分离_利用Python将文本中的中英文分离方法
- 20145322何志威《网络对抗》逆向及Bof基础
- 【转】“弱水三千 只取一瓢”(出处就不去考证了)
- 报错:WebMvcConfigurer.class cannot be opened because it does not exist
- 《数据库系统概论》学习总结
- 大数据相关概念-什么是算子
- 浮点数floats的的整数除法和运算结果不精确
- Java虚拟机如何设置环境变量_如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。...
- 快速入门 Remix IDE
- anaconda 创建虚拟环境、激活及使用的基本方法
- 【Axure教程】中继器表格寻找和标记数据
- openwrt实现挂载usb摄像头及视频保存
- 深度学习Pytorch/Caffe-GPU环境配置
热门文章
- js 正则表达式奇偶字符串替换_js正则表达式replace替换变量方法
- python import pandas报错找不到_扎心!“我学了半年 Python,还是找不到工作”
- idea允许多实例运行
- 将List集合用字符串,逗号隔开进行拼接 ,五种方法
- Linux查看端口被那个进程占用
- MySQL对浮点数设置保留位数
- Android开发笔记(一百七十五)利用Room简化数据库操作
- Android开发笔记(一百二十三)下拉刷新布局SwipeRefreshLayout
- 离别海润光伏:杨怀进的“轮回怪圈”
- Node.js使用supervisor遭遇‘supervisor’不是内部或外部命令,如果解决?