HDU1176_免费馅饼【号码塔】
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
Author
lwg
题目大意:总共同拥有0~10个位置。gameboy站在5的位置上。给你馅饼
掉落的时间的位置。gameboy每秒仅仅能到自己位置临近的位置接馅饼。
比方在5的位置上仅仅能接到4 5 6的馅饼。在7的位置上仅仅能接到 6 7 8的
馅饼。问gameboy最后最多能接到多少馅饼。
思路:动态规划的思想。
将位置总体右移一个单位。位置为1~11。这样方便计算。
建立二维数组。一维代表时间。二维代表位置。点上的值代表馅饼的个数。
按时间顺序存储馅饼个数。
最后从底往上递推。
每次比較馅饼位置i和馅饼位置i-1和馅饼位置i+1的馅饼
个数。
dp[i][j] = max(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1])+v[i][j];
dp[0][6]就是终于结果。
#include<stdio.h>
#include<string.h> int dp[100010][12];
int main()
{
int n,pos,time,Maxtime;
while(~scanf("%d",&n) && n)
{
Maxtime = 0;
memset(dp,0,sizeof(dp));
for(int i = 1; i <= n; i++)
{
scanf("%d%d",&pos,&time);
dp[time][pos+1]++;//pos为0的时候左边还得加推断,这里位置总体右移
if(time > Maxtime)
Maxtime = time;
} for(int i = Maxtime-1; i >= 0; i--)
{
for(int j = 1; j <= 11;j++)
{
int num1 = dp[i+1][j-1];
int num2 = dp[i+1][j];
int num3 = dp[i+1][j+1];
int Max = 0;
if(Max < num1)
Max = num1;
if(Max < num2)
Max = num2;
if(Max < num3)
Max = num3;
dp[i][j] += Max;
}
} printf("%d\n",dp[0][6]);
}
return 0;
}
HDU1176_免费馅饼【号码塔】的更多相关文章
- hdu 1176 免费馅饼(数塔类型)
http://acm.hdu.edu.cn/showproblem.php?pid=1176 免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- [hdu1176]免费馅饼(数塔dp)
题意:中文题,不解释了 = = 解题关键:逆推,转化为数塔dp就可以了 dp[i][j]表示在i秒j位置的最大值. 转移方程:$dp[i][j] = \max (dp[i + 1][j],dp[i + ...
- HDU 1176 免费馅饼 (动态规划、另类数塔)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU 1176免费馅饼 DP数塔问题转化
L - 免费馅饼 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- hdu1176免费馅饼(动态规划,数塔)
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- nyoj 613 免费馅饼 广搜
免费馅饼 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...
- HDU 1176 免费馅饼
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 1644 免费馅饼 题解(c++)(S.B.S.)
1644 免费馅饼(巴蜀oj上的编号) 题面: SERKOI最新推出了一种叫做“免费馅饼”的游戏. 游戏在一个舞台上进行.舞台的宽度为W格,天幕的高度为H格,游戏者占 ...
- 解题报告 HDU1176 免费馅饼
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
随机推荐
- 14.2.5.1 Role of the .frm File for InnoDB Tables InnoDB .frm文件的作用
14.2.5.1 Role of the .frm File for InnoDB Tables: 14.2.5.1 Role of the .frm File for InnoDB Tables I ...
- Swift - 滑块(UISlider)的用法
1,滑块的创建 1 2 3 4 5 6 var slider=UISlider(frame:CGRectMake(0,0,300,50)) slider.center=self.view.center ...
- 第二章排错的工具:调试器Windbg(下)
感谢博主 http://book.51cto.com/art/200711/59874.htm 2.2 读懂机器的语言:汇编,CPU执行指令的最小单元2.2.1 需要用汇编来排错的常见情况 汇编是 ...
- iOS8指纹识别TouchID
苹果在2014年6月3日的WWDC2014开幕式上推出了新版iOS8系统,界面上iOS8与iOS7相比变化不大,只是在功能方面进行了完好.iOS8通知中心更加强大,支持消息直接回复操作,并支持Quic ...
- Extjs学习----------动态载入js文件(减轻浏览器的压力)
动态载入js文件能够减轻浏览器的压力,本例使用了Ext.window.Window组件,该组件的学习地址:http://blog.csdn.net/z1137730824/article/detail ...
- phprpc 使用实例(同时有Java、Android和Delphi客户端的例子)
PHPRPC 是一个轻型的.安全的.跨网际的.跨语言的.跨平台的.跨环境的.跨域的.支持复杂对象传输的.支持引用参数传递的.支持内容输出重定向的.支持分级错误处理的.支持会话的.面向服务的高性能远程过 ...
- Python使用heapq实现小顶堆(TopK大)、大顶堆(BtmK小)
Python使用heapq实现小顶堆(TopK大).大顶堆(BtmK小) | 四号程序员 Python使用heapq实现小顶堆(TopK大).大顶堆(BtmK小) 4 Replies 需1求:给出N长 ...
- How to write simple HTTP proxy with Boost.Asio
How to write simple HTTP proxy with Boost.Asio How to write simple HTTP proxy with Boost.Asio Russia ...
- 彻底删除"提示删除文件和目录"时出错的文件或目录
当删除文件是出现上图时 能够用以下的方法删除文件 策略一:系统大法 第一招 进程帮你搞定 很多时候乱码文件名称里的文件是explorer.exe进程联系在一起的. 假设要删除的话能够这样:首先命令 ...
- linux find命令强大之处
find命令 find pathname -options [-print -exec -ok ...] -print: find命令将匹配的文件输出到标准输出. -exec: find命令对 ...