您的位置:首页 > 其它

HDU 1176 饼

2016-05-24 14:49 169 查看
#include <iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 100000;
int dp[maxn+5][12] = {0};
int main()
{
int n;

while(scanf("%d",&n) , n!=0)
{
memset(dp,0,sizeof(dp));
int x,T;
int maxt = 0;
while(n--)
{
scanf("%d%d", &x, &T);
dp[T][x]++;

maxt = max(T, maxt);
}

for(int i=maxt-1; i>=0; i--)
{
dp[i][0] += max(dp[i+1][0],dp[i+1][1]);///这里改成maxt ,加1后 ,不就超了吗
for(int j=1; j<11; j++)
{
dp[i][j] += max(max(dp[i+1][j-1],dp[i+1][j+1]),dp[i+1][j]);
}
}

int ans = 0;

/*
for(int i=maxt-1; i>=0; i--)
{
for(int j=0; j<11; j++)
{
ans = max(ans,dp[i][j]);
}
}

printf("%d\n", ans); ///这样不对, 不明白为什么
*/
///printf("%d\n",dp[0][5]);

}
return 0;
}
///一道水题 卡我半天 转圈哭 转圈哭 我的大计划都被耽误了 不开心。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: