您的位置:首页 > 其它

hdu 1176 免费馅饼(数塔类型)

2015-09-03 08:14 351 查看

http://acm.hdu.edu.cn/showproblem.php?pid=1176

免费馅饼

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 33362 Accepted Submission(s): 11410


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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
#define N 100010

using namespace std;

int dp
[20];//dp[i][j]表示第i秒在位置j处能接的馅饼数
int main()
{
int n, x, t, T, i, j;
while(scanf("%d", &n), n)
{
memset(dp, 0, sizeof(dp));
T = 0;
while(n--)
{
scanf("%d%d", &x, &t);
dp[t][x + 1]++;
T = max(T, t);//找出最长能够接馅饼的时间
}
for(i = T - 1 ; i >= 0 ; i--)
{
for(j = 11 ; j >= 0 ; j--)
dp[i][j] += max(max(dp[i + 1][j - 1], dp[i + 1][j]), dp[i + 1][j + 1]);
}
printf("%d\n", dp[0][6]);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: