Problem Descrption

今年暑假杭电ACM集训队第一次组成女生队,其中有一队叫RPG,但做为集训队成员之一的野骆驼竟然不知道RPG三个人具体是谁谁。RPG给他机会让他猜猜,第一次猜:R是公主,P是草儿,G是月野兔;第二次猜:R是草儿,P是月野兔,G是公主;第三次猜:R是草儿,P是公主,G是月野兔;......可怜的野骆驼第六次终于把RPG分清楚了。由于RPG的带动,做ACM的女生越来越多,我们的野骆驼想都知道她们,可现在有N多人,他要猜的次数可就多了,为了不为难野骆驼,女生们只要求他答对一半或以上就算过关,请问有多少组答案能使他顺利过关。

Input

输入的数据里有多个case,每个case包括一个n,代表有几个女生,(n<=25), n = 0输入结束。

Output

1
1

Sample Input

1
2
0

Sample Output

1
1

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

问题分析:根据错列排序的思想

错排简单点说就是给n个节点它们原来的位置为i,
然后让你把它们从新排列使得它们都不在它们原来的位置上。
错排递归公式:f(i) = (i - 1) * (f(i - 1) + f(i - 2));  i >= 4 (f(0) = 0, f(1) = 0, f(2) = 1, f(3) = 2);
AC代码:

#include<iostream>
using namespace std;
long int c(int n,int m)
{long int i,t1=1,t2=1;for(i=n;i>=n-m+1;i--)t1*=i;for(i=1;i<=m;i++)t2*=i;return t1/t2;
}int main()
{int i,k,r;long int a[15],cr,n;a[0]=0;a[1]=0;a[2]=1;for(k=3;k<=15;k++)a[k]=(k-1)*(a[k-1]+a[k-2]);while(scanf("%I64d",&n)&&n){r=n/2;cr=0;for(i=2;i<=r;i++)cr+=c(n,i)*a[i];//小于n/2的人的错排的和,即为所求if(n==1||n==2)printf("1\n");else printf("%I64d\n",cr+1);}return 0;
}

HDU2068(错列排序)相关推荐

  1. HDU2049(错列排序)

    国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样 ...

  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. javascript中select的常用操作
  2. 《统计学习方法》-李航、《机器学习-西瓜书》-周志华总结+Python代码连载(一)--模型选择+误差评估
  3. 系统自动化安装kickstart
  4. 计算机考研一定要去北上广吗,考研一定要去“北上广”吗?这几类学生可能更适合......
  5. 热冗余冷冗余_冗余支架
  6. 【全栈React】第13天: 重复元素
  7. struts1.x 错误之 java.lang.IllegalArgumentException: No bean specified
  8. 【免费分享】论文查重软件(亲测好用!)
  9. 【仿真】后仿真中的notifier是奏啥滴!
  10. Arch linux使用yay安装软件时有效性检查错误
  11. TokenInsight 对话首席——智能法律合约,去中心化的法务、仲裁之路可否行通
  12. 古典音乐入门的常见问题
  13. 关于人工智能不会使大脑变懒惰的议论文_台湾人工智能学校执行长陈升玮:孩子成为这型人,就不怕被AI取代...
  14. let和const与var的区别
  15. 微信小程序如何实时监测网络状态变化?
  16. 以太坊智能合约solidity去中心化投票系统
  17. 看看好妻子什么样面相
  18. 每天一个IDA小技巧(二):基本代码转换
  19. 2012年龙年春节晚会之我见-亲民,团圆,好的社会道德宣扬,总结 编辑
  20. HashMap的到底是有序还是无序

热门文章

  1. 牛客题霸 [字符串的排列] C++题解/答案
  2. 树哈希判断同构无根同构问题转有根同构问题
  3. Bzoj3309-DZY Loves Math【莫比乌斯反演,线性筛】
  4. jzoj4382-[GDOI2016模拟3.11]历史【并查集】
  5. P1455-搭配购买【图论,并查集,dp,背包】
  6. ssl1776-游乐场【图论,深搜】
  7. 牛客练习赛 56 E tarjan 割边
  8. [XSY] 字符串题(字符串,构造)
  9. 7、java中的面向对象思想和体现
  10. JavaFX图表(四)之面积图