您的位置:首页 > 其它

HDU 1176 免费馅饼

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

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
int dp[100001][11];
int main()
{
int i, j, n, x, t, MaxT;
int point = 5;
while(~scanf("%d", &n), n)
{
MaxT = -1;
memset(dp, 0, sizeof(dp));
for(i = 0; i < n; i++){
scanf("%d%d", &x, &t);
dp[t][x]++;
if(t > MaxT) MaxT = t;
}
for(t = MaxT; t >=0; t--){//t从最大开始,如果t从0开始,会遇到0-1的情况
for(i = 0; i < 11; i++){
if(i == 0){
dp[t][i] += max(dp[t+1][i], dp[t+1][i+1]);//
}
else{
dp[t][i] += max(max(dp[t+1][i], dp[t+1][i+1]), dp[t+1][i-1]);
}
}
}
printf("%d\n", dp[0][5]);
}
return 0;
}


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