Problem Description
今年暑假杭电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输入结束。
Sample Input
1 2 0
Sample Output
1 1
解题思路:要求出最少一半是猜对的,那么少于一半是不对应的。那么要想完成这个事件,分成两步,第一步:从n个人中取出n/2个人,用排列组合,第二步:从取出的n/2人中对应的人和名字要全都错,则用错排公式,两步得出的数相乘得出一部分结果。再重复以上两步,人数变成n/2-1个人,结果与上一个结果相加,依次类推……。得出最后正确答案。
#include<stdio.h>
__int64 cuobai[15],da[27];
__int64 c(int n,int m)//从n个中取m个的种数
{__int64 cc=1,in=1;for(int i=n;i>=n-m+1;i--)cc*=i;for(int i=2;i<=m;i++)in*=i;return cc/in;
}
void init()
{cuobai[1]=0; cuobai[2]=1;for(int i=3;i<=13;i++)//求i个人错排的种数cuobai[i]=(cuobai[i-1]+cuobai[i-2])*(i-1);da[1]=da[2]=da[3]=1;for(int i=4;i<=25;i++){da[i]=1;//全对只有一种for(int j=1;j<=i/2;j++)da[i]+=c(i,j)*cuobai[j];}
}
int main()
{int n;init();while(scanf("%d",&n)>0&&n){printf("%I64d\n",da[n]);}
}

转载于:https://www.cnblogs.com/james1207/p/3424237.html

hdu2068RPG的错排相关推荐

  1. Codeforces1600数学[CodeForces - 958E1[平面几何+暴力]CodeForces - 888D [组合数+错排问题]]

    A - Guard Duty (easy) CodeForces - 958E1 题目大意:给你n个基地和m个飞船,每个基地都要分配一共飞船,每个飞船都要在一共基地,任意两台飞船到基地得直线路径上不能 ...

  2. 转载:关于错排的相关知识

    转载:关于错排的相关知识 杭电2048相关知识充电 转自:错排公式 分类: 数论 关于程序2012-06-08 19:07 335人阅读 评论(0) 收藏 举报 n2 错排问题 错排问题 就是一种递推 ...

  3. 洛谷 P3182 [HAOI2016]放棋子(错排问题)

    题面 luogu 题解 裸的错排问题 错排问题 百度百科:\(n\)个有序的元素应有\(n!\)个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排:有的叫重排.如,1 2的错 ...

  4. hdu1465 不容易系列之一(错排问题)

     Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好"一件"事情尚且不易,若想永远成功而总从不失败,那更是难上加难 ...

  5. 浅谈错排公式的推导及应用

    近期学弟在HDU刷题时遇到了关于错排公式的一些问题,我作为过来人就写这篇博客来指导他们~~~ 错排的定义:一段序列中一共有n个元素,那么可知这些元素一共有n!种排列方法.假如在进行排列时,原来所有的元 ...

  6. HDU2049 组合数学 错排公式

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

  7. HDOJ 1465 不容易系列之一 【错排公式 递推】

    HDOJ 1465 不容易系列之一 [错排公式 递推] 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1465 题目就是说n个信封全部装错信的可能性是多 ...

  8. 错排、卡特兰数、斯特林数小结

    一. 错排 1.计算公式: 1) D[n] = (n-1)*(D[n-1]+D[n-2]) ,n>=2, D[0] = 1, D[1] = 0 . 解释:对于第n个要加入错排的数,它可以和已经错 ...

  9. HDU - 2049 不容易系列之(4)——考新郎(错排问题+组合数学)

    题目链接:点击查看 题目大意:有n对新婚夫妇,有m个新郎找错了新娘,问发生这种情况的可能 题目分析:匹配错误问题可以类比于全错排问题,这里插眼放一个讲的不错的博客: https://blog.csdn ...

最新文章

  1. 清华阿里联合发布:一个Few-shot场景的命名实体识别数据集
  2. ivew 双向绑定时间控件
  3. CentOS设置程序开机自启动的方法
  4. fortran的gui开发 python_python和fortran的接口
  5. 自定义浏览器协议,实现web程序调用本地程序
  6. 03-运行时数据区概述及线程
  7. 简单的OPC与C#通讯,别想复杂了
  8. C++总结笔记(五)——构造函数和析构函数
  9. ICSharpCode.SharpZipLib 开源压缩库使用示例
  10. Hackathons 101-以及为什么要考虑参加
  11. mongodb副本集php,MongoDB副本集
  12. WVPPro+ZLMediaKit+大华相机推流+安卓模拟GB28181设备推流
  13. Android TextView动态设置字体颜色选择器
  14. 计算机组成原理中EMAR是什么,计算机组成原理(罗克露)第3章cpu.ppt
  15. 指南|查询美国的关税清单
  16. C语言数字图像处理---2.5图像频域滤波
  17. 手机打电话提示无法连接到移动网络
  18. 第十一届蓝桥杯省赛第一场原题
  19. MDClub(开源社区系统) v1.0.0
  20. AccessViolationException

热门文章

  1. find、sed、awk、grep命令总结
  2. thinkphp去掉index.php
  3. 为DevOps正确组合IT、文化和实践
  4. 剑指offer系列之十:二进制中1的个数
  5. 现代教育技术课后作业(五)
  6. 一个浙江人的23条经典经商法则
  7. mini2440系统引导(四)存储控制器
  8. SQL Server基础
  9. 利用SQL索引提高查询速度
  10. 闭关修炼——two——struts2