国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的:
首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排;
然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个.
最后,揭开盖头,如果找错了对象就要当众跪搓衣板...

看来做新郎也不是容易的事情...

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

Input

输入数据的第一行是一个整数C,表示测试实例的个数,然后是C行数据,每行包含两个整数N和M(1<M<=N<=20)。

Output

对于每个测试实例,请输出一共有多少种发生这种情况的可能,每个实例的输出占一行。

Sample Input

2
2 2
3 2

Sample Output

1
3

问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049

问题分析:

这个道题就是求N中有多少中M个数的错排。

因此先找到N个新郎中M个错一共有几种,显然是CMN=N!/(M!*(N-M)!)。即CMN=N!/M!/(N-M)!

同时应注意因为20的阶乘为很大的数,所以要用long long

然后逐步找出递推公式。

AC代码:

#include <iostream>
using namespace std;
int main()
{int T,n,m,i;long long a[25],b[25];a[0] = 1; a[1] = 1,a[2] = 2;for(i = 3; i < 21;i++)a[i] = a[i-1]*i;b[0] = 0;b[1] = 1;b[2] = 1,b[3] = 2;for(i = 4; i < 21;i++)b[i] = (i-1)*(b[i-1]+b[i-2]);cin>>T;while(T--){cin>>n>>m;cout<<a[n]/a[m]/a[n-m]*b[m]<<endl;}return 0;
}

HDU2049(错列排序)相关推荐

  1. HDU2068(错列排序)

    Problem Descrption 今年暑假杭电ACM集训队第一次组成女生队,其中有一队叫RPG,但做为集训队成员之一的野骆驼竟然不知道RPG三个人具体是谁谁.RPG给他机会让他猜猜,第一次猜:R是 ...

  2. Power Pivot(了解power pivot,获取数据,计算字段(度量值)和计算列,按列排序,多表模型关系创建)

    一个案例了解power pivot(订单明细表,区域,产品表) 关键字段: 创建关系:一对多:多对一:一对一 一对多:一指的是创建关系字段是唯一值:多指的是创建关系字段的重复值 一端的字段可以控制多端 ...

  3. pandas对dataframe进行排序:单数据列排序、多数据列排序、NA值排序位置、排序算法

    pandas对dataframe进行排序:单数据列排序.多数据列排序.NA值排序位置.排序算法 目录 pandas对dataframe进行排序 #仿真数据 #基于单数据列进行dataframe排序

  4. R语言dplyr包arrage函数排序dataframe实战:单列排序、多列排序、自定义排序

    R语言dplyr包arrage函数排序dataframe实战:单列排序.多列排序.自定义排序 目录 R语言dplyr包arrage函数排序dataframe实战:单列排序.多列排序

  5. pymongo多结果进行多列排序的代码

    将做工程过程中常用的一些代码收藏起来,下面的代码内容是关于pymongo多结果进行多列排序的代码. >>> db.Account.find().sort("UserName ...

  6. mysql 按两列排序吗_按两列排序MySQL表

    噜噜哒 这可能有助于某人正在寻找通过两列排序表的方法,但是以相似的方式.这意味着使用聚合排序功能组合两种排序.例如,在使用全文搜索检索文章以及文章发布日期时,它非常有用.这只是一个例子,但是如果你理解 ...

  7. Java黑皮书课后题第8章:*8.27(列排序)用下面的方法实现一个二维数组中的列排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵

    *8.27(列排序)用下面的方法实现一个二维数组中的列排序.返回新数组,且原数组保持不变.编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵 题目 题目描述与运行示例 破 ...

  8. Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序

    *8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序.这个方法首先按行排序,然后按列排序 题目 题目描述 破题 代码 运行实例 题目 题目描述 *8.16(对二维数组排序)编写一个 ...

  9. java多维数组按照某一列排序,PHP实现二维数组按某列进行排序的方法

    本文实例讲述了PHP实现二维数组按某列进行排序的方法.分享给大家供大家参考,具体如下: /* * 二维数组 按某列排序 * array_multisort($arr1,$arr2) * 手册 例子如下 ...

最新文章

  1. 一步一步教您打印出自己大脑的3D模型
  2. log4j.properties配置总结
  3. [导入]MsAjax Lib- Boolean.parse 函数
  4. 爬虫 - HDU题目信息
  5. 物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP
  6. Android 四种启动模式
  7. 阿里巴巴MySQL DBA面试题答案(欢迎进来讨论)
  8. mysql-8.0.26-winx64 的下载与安装教程
  9. html图片自动切换的幻灯片效果的,JS实现可切换图片的幻灯切换效果示例
  10. 关闭windows defender
  11. Star Way To Heaven 二分 + 并查集 + Prime
  12. python曲线拟合准确度评估_使用Python SciPy量化曲线拟合的质量
  13. 计算机简单的办公操作,电脑操作掌握这15种快捷键技巧,你就是办公高手!
  14. Windows取证——CHNTPW工具使用(可更改 Windows 密码)
  15. Simultaneously Localize, Segment and Rank the Camouflaged Objects阅读笔记
  16. jenkins邮件模板配置
  17. 京东码农:淡定认为裁员轮不到我!没想正讨论工作就接到被裁通知
  18. Android钢琴滑动代码,真正完美的android钢琴软件
  19. log4j日志输出到web项目指定文件夹
  20. 普通家庭,千万不要投入大量时间和金钱,让孩子去苦学和培养AI机器人编程了...

热门文章

  1. CF1526 D. Kill Anton
  2. [COCI 2018#5]Parametriziran
  3. Loj#6039-「雅礼集训 2017 Day5」珠宝【四边形不等式,dp】
  4. CF505E-Mr. Kitayuta vs. Bamboos【贪心,二分】
  5. P7600-[APIO2021]封闭道路【堆,dp】
  6. 【2018.3.24】模拟赛之一-ssl2545 奇数【水题】
  7. CDQ 分治与整体二分
  8. codeforce23 E. Tree(高精度+树形dp)
  9. HDU5120 - Intersection
  10. 一道有趣的最短路 NEERC2017 Journey from Petersburg to Moscow