码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1176

时间:2018-04-29 16:29:30      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:acm

用数塔模型解决,用dp[time][side]来表示t秒在x位置掉下的馅饼。然后自下而上的去求一个最大和。


参考文章:
http://www.cnblogs.com/sjy123/p/3242730.html
https://blog.csdn.net/theonegis/article/details/45801201

#include<algorithm>
#include<cstdio>
#include<string.h>
using namespace std;

int max3(int a,int b,int c){
    int max2=max(a,b);
    return max(max2,c);
}

const int len=100001;
int dp[len][11];

int main(){
    int n,side,time;
    while(~scanf("%d",&n)&&n){
        int maxtime=0;
        memset(dp,0,sizeof(dp));
        while(n--){
            scanf("%d %d",&side,&time);
            dp[time][side]++;
            maxtime=max(maxtime,time);
        }
        for(int i=maxtime-1;i>=0;i--){
            dp[i][0]+=max(dp[i+1][0],dp[i+1][1]);
            dp[i][10]+=max(dp[i+1][10],dp[i+1][9]);
            for(int j=1;j<=9;j++)    dp[i][j]+=max3(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1]);
        }
        printf("%d\n",dp[0][5]);
    }
    return 0;
}

hdu 1176

标签:acm

原文地址:http://blog.51cto.com/13688928/2109072

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!