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

简单dp——HDU - 1176

时间:2019-07-22 20:05:05      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:ems   class   return   ios   iostream   const   scanf   print   eof   

题目含义
看了就能理解,一个人捡馅饼

题目分析

这和数塔的题做法一样

一个时间就是一层塔,11个位置就是一层塔有11个数

可以从塔底到塔顶dp,dp公式是dp[i][j]+=max(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1])

题目代码

#include <stdio.h>
#include <string.h>
#include <iostream>
#include<algorithm>
using namespace std;
const int maxn=1e5+7;
int dp[maxn][11],x,t,n;
int main(){
    while(scanf("%d",&n)&&n){
        memset(dp,0,sizeof(dp));
        int maxt=0;
        for(int i=0;i<n;i++){
            scanf("%d%d",&x,&t);
            dp[t][x]++;
            if(t>maxt)maxt=t;
        }
        for(int i=maxt-1;i>=0;i--)
        for(int j=0;j<=10;j++){
            if(!j)dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]);
            else if(j==10)dp[i][j]+=max(dp[i+1][j],dp[i+1][j-1]);
            else dp[i][j]+=max(dp[i+1][j],max(dp[i+1][j-1],dp[i+1][j+1]));
        }
        printf("%d\n",dp[0][5]);
    }
    return 0;
}

 

简单dp——HDU - 1176

标签:ems   class   return   ios   iostream   const   scanf   print   eof   

原文地址:https://www.cnblogs.com/helman/p/11227926.html

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