题目描述:
在大家不辞辛劳的帮助下,TT 顺利地完成了所有的神秘任务。

神秘人很高兴,决定给 TT 一个奖励,即白日做梦之捡猫咪游戏。

捡猫咪游戏是这样的,猫咪从天上往下掉,且只会掉在 [0, 10] 范围内,具体的坐标范围如下图所示。


TT 初始站在位置五上,且每秒只能在移动不超过一米的范围内接住掉落的猫咪,如果没有接住,猫咪就会跑掉。例如,在刚开始的一秒内,TT 只能接到四、五、六这三个位置其中一个位置的猫咪。

喜爱猫咪的 TT 想要接住尽可能多的猫咪,你能帮帮他吗?

Input
多组样例。每组样例输入一个 m (0 < m < 100000),表示有 m 只猫咪。

在接下来的 m 行中,每行有两个整数 a b (0 < b < 100000),表示在第 b 秒的时候有一只猫咪掉落在 a 点上。

注意,同一个点上同一秒可能掉落多只猫咪。m = 0 时输入结束。

Output
输出一个整数 x,表示 TT 可能接住的最多的猫咪数。

Sample Input
6
5 1
4 1
6 1
7 2
7 2
8 3
0
Sample Output
4
题目分析:
这个题目的数据就比较正常了,这里用的是动态规划的方法。我们需要用一个数组dp[i][j]来表示第i秒第j点所有的最大猫咪数目。

int dp[100001][11];

初始的时候我们要把有猫咪的地方个数++,然后要找到哪一个时间是最大的,我们从最大时间往前找到0秒,然后找每一个位置可能的情况。

     int mn=-114514;for(int i=0;i<m;i++){int a,b;cin>>a>>b;dp[b][a]++;mn=max(mn,b);}

对于每一个情况而言,能捕捉到左右和中间三个格子的猫咪,那么这里获得的猫咪数的最大值就是包括原点的周围三个点的猫咪数目的最大值,多个数的最大值就是max函数的嵌套,毕竟max有交换律和结合律,不管是谁先谁后都一样。

dp[i][j]=dp[i][j]+max(dp[i+1][j-1],max(dp[i+1][j],dp[i+1][j+1]));

对于边上两个点,那就是他和附近一个点共两个点的情况了,这要单独的列出来。

         dp[i][0]=dp[i][0]+max(dp[i+1][0], dp[i+1][1]);dp[i][10]=dp[i][10]+max(dp[i+1][10],dp[i+1][9]);

最终的结果就是第0秒(我们的时间是倒着数的)第5个位置(就是原始位置)。

cout<<dp[0][5]<<endl;

代码如下:

#include<iostream>
#include<cstring>
using namespace std;
int dp[100001][11];
int main()
{int m;while(cin>>m){if(m==0){break;}memset(dp,0,sizeof(dp));int mn=-114514;for(int i=0;i<m;i++){int a,b;cin>>a>>b;dp[b][a]++;mn=max(mn,b);}for(int i=mn-1;i>=0;i--){for(int j=1;j<=9;j++){dp[i][j]=dp[i][j]+max(dp[i+1][j-1],max(dp[i+1][j],dp[i+1][j+1]));}dp[i][0]=dp[i][0]+max(dp[i+1][0], dp[i+1][1]);dp[i][10]=dp[i][10]+max(dp[i+1][10],dp[i+1][9]);}cout<<dp[0][5]<<endl;}
}

第十三周作业-必做3相关推荐

  1. 第十一周作业-必做4

    题目描述: 东东和他的女朋友(幻想的)去寿司店吃晚餐(在梦中),他发现了一个有趣的事情,这家餐厅提供的 n 个的寿司被连续的放置在桌子上 (有序),东东可以选择一段连续的寿司来吃 东东想吃鳗鱼,但是东 ...

  2. 程序设计思维与实践 Week12 作业 必做题 A-zjm找数

    题目链接:A-zjm找数 题目描述: 给出n个数,zjm想找出出现至少(n+1)/2次的数, 现在需要你帮忙找出这个数是多少? Input: 本题包含多组数据: 每组数据包含两行. 第一行一个数字N( ...

  3. 程序设计思维与实践 Week11 作业 必做题 A-蒜头君买房子

    题目链接:A-蒜头君买房子 题目描述: 蒜头君从现在开始工作,年薪N万.他希望在蒜厂附近买一套60平米的房子,现在价格是 200万.假设房子价格以每年百分之K增长,并且蒜头君未来年薪不变,且不吃不喝, ...

  4. HTML第十三天作业,做一个QQ注册的简单页面

    运行结果: 代码: <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  5. 第十三周完成情况 学生选课管理系统 王杰 孙乾 蔚晓青

    1.第十三周作业已基本完成,下面是界面的完成图片 转载于:https://www.cnblogs.com/qingqing2016/p/5542035.html

  6. 20175221 MyCP(课下作业,必做)

    MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...

  7. MyCP(课下作业,必做)

    20175334 MyCP(课下作业,必做) 题目要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.t ...

  8. 数据库MySQL(课下作业,必做)

    数据库MySQL(课下作业,必做) 题目要求: 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入 ...

  9. 必做作业三:基于墨刀的原型设计——词典APP

    必做作业三:基于墨刀的原型设计--词典APP 运行环境:IOS系统 作品运行地址:https://modao.cc/app/JmnRng02vm8mJDB1NmdswodOndgMHwJ 注:使用ch ...

  10. 计算机应用数学浙大答案,浙大远程-计算机应用基础必做作业全部(答案).doc

    浙大远程-计算机应用基础必做作业全部(答案).doc (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 第1章 计算机基础知识题参 ...

最新文章

  1. mysql fabric安装使用测试
  2. 牛客 - 牛牛的Link Power II(线段树)
  3. 红米android4.4.2,新版红米Note配置升级详解:系统其实是基于Android 4.4.2
  4. Know more about _in_memory_undo
  5. 矩阵线性代数笔记整理汇总,超全面
  6. 管理感悟:软件第一法则
  7. Eclipse + keil 使用教程
  8. Windows服务详解
  9. URL和URI的区别和联系
  10. 即时通讯之xmpp协议简析
  11. 「上海院子」打造不可复制的国宅风华
  12. HDU 1521 排列组合 (指数型母函数)
  13. 基于科大讯飞AIUI平台自定义语义库的开发
  14. linux下的lib文件
  15. 肇庆学院计算机励志奖学金,关于评选肇庆学院2019年国家奖助学金的通知
  16. 网易2018实习生招聘笔试题-JAVA开发实习生
  17. 包装用超声波密封行业研究及十四五规划分析报告
  18. 关于“Connection refused: connect”错误
  19. java:获取当月最后一天
  20. 5项有助于提高 Google 关键字排名的措施

热门文章

  1. Unity3D网页游戏夺先发之势你hold得住吗?
  2. python剔除st股_通达信剔除st的指标,通达信条件预警中如何剔除st股票
  3. js 移动号码,座机号码,座机转分机号码验证
  4. python自动发送微信文件_Python脚本定期发送微信文件,定时
  5. 加载大尺寸图片不清晰,加载原图(ImageLoader,Glide)
  6. 北京地铁,4号线换乘13号线,用时最短换乘线路
  7. win10资源管理器怎么打开_熟记这些Win10常用快捷键及使用技巧,提高工作效率,建议收藏...
  8. 物联网协议之NBIOT
  9. ODrive配置云台电机GIMBLE_TYPE
  10. “满五唯一”和“满二唯一”是什么?有什么不同?