Problem Description
都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的馅饼。现在给这条小径如图标上坐标:

为了使问题简化,假设在接下来的一段时间里,馅饼都掉落在0-10这11个位置。开始时gameboy站在5这个位置,因此在第一秒,他只能接到4,5,6这三个位置中其中一个位置上的馅饼。问gameboy最多可能接到多少个馅饼?(假设他的背包可以容纳无穷多个馅饼)
Input
输入数据有多组。每组数据的第一行为以正整数n(0<n<100000),表示有n个馅饼掉在这条小径上。在结下来的n行中,每行有两个整数x,T(0<T<100000),表示在第T秒有一个馅饼掉在x点上。同一秒钟在同一点上可能掉下多个馅饼。n=0时输入结束。
Output
每一组输入数据对应一行输出。输出一个整数m,表示gameboy最多可能接到m个馅饼。
提示:本题的输入数据量比较大,建议用scanf读入,用cin可能会超时。
Sample Input
6 5 1 4 1 6 1 7 2 7 2 8 3 0
Sample Output
4

状态d[i][j]表示i时刻在坐标j出最多能接到的馅饼数。

状态转移方程:

d[i][j] = Max(d[i+1][j-1],d[i+1][j], d[i+1][j+1]) + d[i][j].

最后d[0][5]即为所求结果。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176

#include<cstdio>
#include<cstring>
#include<iostream>#define M 100000+10using namespace std;int d[M][12]; /*d[i][j]表示在i时刻落在j点的馅饼数量*/  int maxof2(int x, int y){return (x>y )? x:y;
}int maxof3(int x, int y, int z){int mmax=(x>y) ? x:y;return (mmax>z) ? mmax:z;
}int dp(int max_time){int i,j;for (i = max_time - 1; i >= 0; --i){d[i][0] = maxof2(d[i+1][0], d[i+1][1]) + d[i][0];for (j = 1; j <=9; ++j){d[i][j] = maxof3( d[i+1][j-1], d[i+1][j], d[i+1][j+1] ) + d[i][j];}d[i][10]=maxof2(d[i+1][9], d[i+1][10])+d[i][10];}return d[0][5];
}int main(){int n;while(scanf("%d",&n)!=EOF && n){int location, time;int max_time=-1;memset(d,0,sizeof(d));for(int i=1; i<=n; ++i){scanf("%d%d", &location, &time);++d[time][location];if(max_time<time)max_time=time;}//printf("max_time=%d\n",max_time);printf("%d\n",dp(max_time));}return 0;
}

HD 1176 免费馅饼 (DP)相关推荐

  1. hdu 1176 免费馅饼(DP)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  2. HDU 1176 免费馅饼(记忆化搜索)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  3. 免费馅饼 (DP动态规划问题详细解析)

    免费馅饼 HDU - 1176 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米 ...

  4. HDU 1176 免费馅饼 (动态规划、另类数塔)

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  5. HDU 1176 免费馅饼 矩阵取数, dp + 滚动数组

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 首先可以处理出整张地图的状态. book[T][POS]表示第T秒,在第pos个地方有多少个馅饼. dp[ ...

  6. HDOJ 1176 免费馅饼 -- 动态规划

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1176 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小 ...

  7. hdu 1176 免费馅饼(nyist 613)

    http://acm.hdu.edu.cn/showproblem.php?pid=1176 dp[i][j]:表示第i秒接j位置的馅饼的最大值. 三种状态: dp[i][j]=max(dp[i-1] ...

  8. hdu 1176:免费馅饼

    hdu1176: http://poj.org/problem?id=1179题意:有一一维坐标系,从0编号到10,一个人站在5上,现在天上正在掉馅饼,这个人每秒只能移动一个单位,所以第一秒只能接住掉 ...

  9. [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]

    Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...

最新文章

  1. 查看自己的ip和采用什么方式上网(网通/电信)
  2. 实例讲解《Microsoft AJAX Library》(2):DomEvent类
  3. 8个超好用的Python内置函数,提升效率必备!
  4. wxPython事件处理
  5. 【dfs】【模拟】【树】I Like Matrix Forever!
  6. 那些年做过的 .NET Web 项目和 iOS 之路的一些思考
  7. angular 倒计时
  8. 网评计算机学校好,网评十大最痛苦专业:计算机、数学上榜
  9. NumPy库---数组的基本操作
  10. SqlServer导入Excel文件数据
  11. python 汉诺塔问题_Python汉诺塔问题
  12. linux安装命令安装包下载地址,linux 用命令行下载的安装包放在哪里
  13. 天秀,Excel居然还可以制作二维码
  14. 纵横算法之三:算法到底考什么
  15. kill -HUP重启mysql_kill的用法和例句,包括kill常用短语解释和词组意思翻译,同义词,反义词【澳典网ODict.Net】...
  16. 趋势与新高的实战研究
  17. 微盟集团上半年业绩逆势增长:抢滩在线新经济未来前景获看好
  18. xposed hook之360加固的APP过模拟器检测
  19. VS编译失败,找不到源文件!!!
  20. 用一条sql语句判断两个日期是否处于同一月份!

热门文章

  1. 神策数据王磊:如何用 JS 实现页面录制与回放
  2. 有一天老板和我要几个关键数据……
  3. 译文| 相信指标还是相信经验?
  4. 人们对大数据的几点误解
  5. MySQL INSERT INTO...ON DUPLICATE KEY UPDATE的使用
  6. java.lang.NoClassDefFoundError: org/springframework/dao/support/DaoSupport
  7. Linux 软件的安装
  8. 用户二次登陆,干掉第一次登录的session
  9. ios UIWebView调用本地html和javascript,并且和ios通讯
  10. 如何看期权是实值还是虚值?