题目1552:座位问题

时间限制:1 秒

内存限制:128 兆

特殊判题:否

提交:264

解决:73

题目描述:

计算机学院的男生和女生共n个人要坐成一排玩游戏,因为计算机的女生都非常害羞,男生又很主动,所以活动的组织者要求在任何时候,一个女生的左边或者右边至少有一个女生,即每个女生均不会只与男生相邻。现在活动的组织者想知道,共有多少种可选的座位方案。

例如当n为4时,共有
女女女女, 女女女男, 男女女女, 女女男男, 男女女男, 男男女女, 男男男男
7种。

输入:

输入包含多组测试用例,每组测试用例仅包含一个整数n(1<=n<=1000)。

输出:

对于每组测试用例,输出一个数代表可选的方案数,为防止答案过大,答案对1000000007取模。

样例输入:
1
2
4
样例输出:
1
2
7

昨天晚上就看着A题和D题明显动态规划,A题做了很久一直只过两个case,后来在网上看了看总算是明白了原理,接着做D题,就是这个题,这个题的难点很显然就是在不合法的队列后面添加人后可以组成合理的队列。我当时的思路是dp[i][0]表示第i个位置排男生的总方法数,dp[i][1]表示第i个位置排女生的总方法数,dp中存的方法数都是指的合法对列的个数,dp[i][0] = dp[i-1][0] + dp[i-1][1](在任意合法队列的后面放男孩就会成为以男孩结束的合法队列 ),但是dp[i][1]的状态当时一直想不到如何转移,就暂时放下了,去看另一种解题思路,在网上搜相关资料的时候发现了Min_lala(csdn博主)发的一篇博客,正好跟我的想法相同,但是他却很好的解决了我上面存在的dp[i][1]确定的难题,

dp[i][1] = sum(dp[k][0])(k = 0~i-2)
其实意思就是最后一个放女的那倒数第二个就一定也是女的但是男的最后一个放在那里呢,这个时候就要枚举所有最后一个男生出现的位置(其后边全放女生)

代码如下:

#include <cstdio>
#include <cmath>
#include <cstdlib>const int maxx = 1001;
const int MOD = 1000000007;int dp[maxx][2];//0 boy 1 grilvoid init(){int i,sum = 0;dp[0][0] = 1;dp[1][0] = 1;dp[1][1] = 0;for(i=2;i<1001;++i){dp[i][0] = dp[i-1][0]+dp[i-1][1];dp[i][0] %= MOD;sum += dp[i-2][0];//用来记录0—i-2位置处为最后一个男生时的合法队列数sum %= MOD;dp[i][1] = sum;}
}int main(){int n,ans;init();while(scanf("%d",&n)!=EOF){ans = (dp[n][0] + dp[n][1])%MOD;printf("%d\n",ans);}return 0;
}

九度oj 1552 座位问题 DP相关推荐

  1. 打不开磁盘配额linux,九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)...

    题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买.请问:你用有限的资金最 ...

  2. Freckles - 九度 OJ 1144

    Freckles - 九度 OJ 1144 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: In an episode of the Dick Van Dyke show, l ...

  3. 非常可乐(九度 OJ 1457)

    非常可乐(九度 OJ 1457) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 1.题目描述: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为.因为每次当 see ...

  4. 九度OJ 题目1179:阶乘

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...

  5. 九度OJ——1028继续畅通工程

    题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...

  6. Leagal or Not - 九度 OJ 1448

    Leagal or Not - 九度 OJ 1448 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: ACM-DIY is a large QQ group where man ...

  7. 九度OJ 题目1069:查找学生信息 随笔

    ** 九度OJ 题目1069:查找学生信息 ** 题目描述如下: 输入N个学生的信息,然后进行查询. 输入 输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息 ...

  8. 九度OJ 题目1203:IP地址

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1203:IP地址 * 来源:http://ac. ...

  9. 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)

    题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...

最新文章

  1. spring cloud config将配置存储在数据库中 1
  2. sqlserver没有维护计划_设定数据库备份计划,安全放心不怕事!
  3. java中怎样导入图片6_java程序员进阶篇之必须掌握的6张思维导图!
  4. ssl协议及开源实现openssl
  5. 为什么要“男孩穷养、女孩富养”
  6. js 解析php serialize,php如何解析jquery serialize 提交后的数据
  7. 跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析
  8. SerializeField和Serializable
  9. 5.应用测试 5.1测试Spring MVC的控制器
  10. 1078 Hashing (25 分) 解决冲突采用正向增加的二次探查法
  11. 模糊综合评价(清风建模学习笔记)
  12. 连续变量的描述统计与SPSS实现
  13. html图片的title,图片标签IMG内alt和title属性
  14. 多目标人工秃鹫优化算法(MATLAB源码分享,智能优化算法) 提出了一种多目标版本的人工秃鹫优化算法(AVOA)
  15. 常用的大功率电阻有哪些,电阻功率降额设计要注意什么
  16. 机器学习|切比雪夫、辛钦和贝努里大数定律|15mins入门|概统学习笔记(十四)
  17. SitePoint播客#25:WordPress与Matt Mullenweg
  18. 微信扫码充值 php,微信扫码支付,php版
  19. 移动支付时代的手机和app安全设置
  20. 计算机网络-网络层篇-BGP协议

热门文章

  1. 2016热剧《欢乐颂全集》
  2. 从实验开始零基础学网络路由交换 三十七,配置NAPT
  3. 二叉树的顺序存储结构
  4. 迭代算法6——近似迭代法之二分法
  5. MBSE和SysML
  6. session共享几种方式
  7. ViewModel 的基本用法
  8. 常用的android自动化测试技术
  9. kbe linux启动
  10. Android连接蓝牙打印机实现PDF文档的打印