hdu 1297
Children’s Queue |
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 959 Accepted Submission(s): 534 |
Problem Description
There are many students in PHT School. One day, the headmaster whose name is PigHeader wanted all students stand in a line. He prescribed that girl can not be in single. In other words, either no girl in the queue or more than one girl stands side by side.
The case n=4 (n is the number of children) is like FFFF, FFFM, MFFF, FFMM, MFFM, MMFF, MMMM Here F stands for a girl and M stands for a boy. The total number of queue satisfied the headmaster’s needs is 7. Can you make a program to find the total number of queue with n children? |
Input
There are multiple cases in this problem and ended by the EOF. In each case, there is only one integer n means the number of children (1<=n<=1000)
|
Output
For each test case, there is only one integer means the number of queue satisfied the headmaster’s needs.
|
Sample Input
1 |
Sample Output
1 大数处理加dP,,dp的话f[n]=f[n-1]+f[n-2]+f[n-4]
假设当前要加入第n个学生,如果他是男生,则加入对前面的序列都不会构成影响,
即为f[n-1],假如他是女生,为保证合法,她前面的那个也就是第n-1个也必须是
女生,接下来分两种情况讨论,如果第n-2个及以前的都合法,那么显然加入最后
这两个女生也是合法的额,但是如果不合法呢?很明显,如果不合法,问题应该出在
尾部,也就是原来f[n-2]不合法,但是加入最后两个女生后也就变得合法了(这句话
很关键),那么其只能为f[n-4]+男+女,所以即可得到公式
其实这个讨论的关键在于确定最后两个为女生才能保证合法
#include<iostream>
#include<cstdio> #include<cstring> using namespace std; long long dp[1001][1001]; int main() { int n; memset(dp,0,sizeof(dp)); dp[1][0]=1;dp[1][1]=1; dp[2][0]=1;dp[2][1]=2; dp[3][0]=1;dp[3][1]=4; dp[4][0]=1;dp[4][1]=7; for(int i=5;i<=1000;i++) { int j,t=dp[i-1][0]; for(j=1;j<=t;j++) { dp[i][j]+=dp[i-1][j]+dp[i-2][j]+dp[i-4][j]; if(dp[i][j]>=10) { dp[i][j+1]+=dp[i][j]/10; dp[i][j]%=10; } } while(dp[i][j]>=10) { dp[i][j+1]+=dp[i][j]/10; dp[i][j]%=10; j++; } j=1000; while(!dp[i][j]) j--; dp[i][0]=j; } while(cin>>n) { for(int i=dp[n][0];i>=1;i--) cout<<dp[n][i]; cout<<endl; } return 0; } |
hdu 1297的更多相关文章
- Children’s Queue HDU 1297 递推+大数
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1297 题目大意: 有n个同学, 站成一排, 要求 女生最少是两个站在一起, 问有多少种排列方式. 题 ...
- HDOJ/HDU 1297 Children’s Queue(推导~大数)
Problem Description There are many students in PHT School. One day, the headmaster whose name is Pig ...
- HDU 1297 Children’s Queue (递推、大数相加)
Children’s Queue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU——PKU题目分类
HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...
- hdu 1465:不容易系列之一(递推入门题)
不容易系列之一 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- [转] HDU 题目分类
转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...
- HDU ACM 题目分类
模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
随机推荐
- signalfx的中间件监控指标so cool
signalfx的中间件监控指标so cool www.jianshu.com 对于我们做运维的来说,监控是最基本的东西,不过在初创公司很多计划是跟不上项目架构变化的,项目中会不断加入各种服务和组 ...
- 15-Perl 格式化输出
1.Perl 格式化输出Perl 是一个非常强大的文本数据处理语言.Perl 中可以使用 format 来定义一个模板,然后使用 write 按指定模板输出数据.Perl 格式化定义语法格式如下:fo ...
- flume收集日志直接sink到oracle数据库
因为项目需求,需要保存项目日志.项目的并发量不大,所以这里直接通过flume保存到oracle 源码地址:https://github.com/jaxlove/fks/tree/master/src/ ...
- Scala学习四——映射和数组
一.本章要点 Scala有十分易用的语言来创建,查询和遍历映射 你需要从可变和不可变的映射中做出选择 默认情况下,你得到的是一个哈希映射,不过你也可以指明要树形映射 你可以很容易地在Scala映射和J ...
- java——HashSet中add()方法不能加重复值得原因理解(我们一起来看底层代码吧)
Set<String> names = new HashSet<>(); names.add("张三"); names.add(new String(&qu ...
- 详解CSS居中布局技巧
本文转自:https://zhuanlan.zhihu.com/p/25068655#showWechatShareTip一.水平居中元素: 1.通用方法,元素的宽高未知方式一:CSS3 transf ...
- Oracle学习笔记:一个简单的行转列例子
一个简单的行列转换例子,原始数据. create table temp_cwh_student ( name ), subject ), score ) ) select * from temp_cw ...
- mysql双yes但是同步延时问题
今天发现在153服务器insert一条数据,然后查看从库154和162都没有这条数据,但是在154和162执行show slave status 显示的双yes 后来重启了153 154 162 ...
- docker 安装php
nginx :docker pull nginx docker run -p 80:80 --name nginx -v /usr/local/nginx/www:/www -v /usr/local ...
- umi+antdpro 2.3
关于umi接管了路由之后的动态配置. 路由通过 router.js 配置文件自动生成. 在 models/ menu.js中可以获取到,但从这里获取到并过滤之后的其实不是路由配置. 正确过滤方式,通过 ...