hdu 2068 错排+组合
来源:互联网 发布:风险矩阵图案例 编辑:程序博客网 时间:2024/06/05 16:48
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
题解:
因为题目求的是有多少组正确答案。需要答对一半以上我们需求出a[i]*c(n,i)i从0到n/2的值。
打错排公式,抄紫书组合数求法。暴力AC
注意a[0]初始化1
代码:
#include <bits/stdc++.h>using namespace std;typedef long long LL;int a[26]={1,0,1};void init(){ for(int i=3;i<26;i++) a[i]=(i-1)*(a[i-1]+a[i-2]);}long long C(int n,int m){ if(m<n-m) m=n-m; long long ans = 1; for(int i=m+1;i<=n;i++) ans*=i; for(int i=1;i<=n-m;i++) ans/=i; return ans;}int main(){ init(); int n; while(cin>>n&&n) { int mid=n/2; LL sum=0; for(int i=0;i<=mid;i++) { sum+=a[i]*C(n,i); } cout<<sum<<endl; } return 0;}
阅读全文
0 0
- hdu 2068 错排+组合
- hdu 2068 错排+组合数
- HDU 2068(错排+组合数)
- hdu 2068 RPG的错排 (错排+组合)
- HDU 2068 RPG的错排(错排与组合)
- HDU 2068 RPG的错排(组合数学--错排)
- HDU 2068 RPG的错排 (错排+组合数)
- HDU-2068 RPG的错排(组合, 错排)
- HDU 2068 RPG的错排(组合数的处理)
- [ACM] hdu 2068 RPG的错排 (逆向思考,错排*组合累加)
- HDU 2068 RPG 的错排(错排问题,组合数)
- hdu2068 & hdu 2049 错排组合
- 错排+组合——HDU 2049
- 组合数学第二发 错排问题 hdu 2049 + hdu 2068
- HDOJ 2068 RPG的错排 【错排 组合数】
- [HDU](2049)考新郎 --组合数+错排
- HDOJ-----2068错排与组合
- 错排 与 组合
- 动态规划 数字三角形 poj1163
- Ubuntu16.04和WindowsXP双系统开机出现grub rescure 解决方案
- Linus实验楼笔记——第4节:Linux 目录结构及文件基本操作
- springboot -dubbo-ssm的最新开源商城
- layout_gravity与gravity的区别,和padding margin的区别
- hdu 2068 错排+组合
- 在win7 32位下使用mongoDB遇到的问题及解决
- 简析TCP的三次握手与四次分手
- hdu 1106
- [Leetcode] 121, 122, 3
- 两组有序数组合并
- hdu 1164
- MySQL的外键约束的要求解析
- MySQL 数据库 资料下载链接