zoukankan      html  css  js  c++  java
  • hdu-1176(动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176

    思路:类似数塔问题,

    从最后一秒开始考虑,每次这一秒的状态确定意味着前一秒的状态也已经确定,所以从下向上进行dp

    注意数组要开大一些。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int MAX(int a,int b)
    {
        return a>b?a:b;
    }
    const int maxn = 100010;
    int a[maxn][15],n,dp[maxn][15];
    int main(void)
    {
        int j,i,t,x;
        while(~scanf("%d",&n)&&n)
        {
            memset(a,0,sizeof(a));
            int mx=0;
            for(i=0;i<n;i++) scanf("%d%d",&x,&t),mx=MAX(mx,t),a[t][x]++;
            for(i=0;i<=10;i++) dp[mx][i]=a[mx][i];
            for(i=mx-1;i>=1;i--)
            {
                for(j=0;j<=10;j++)
                if(j==0) dp[i][j]=a[i][j]+MAX(dp[i+1][j],dp[i+1][j+1]);
                else if(j==10) dp[i][j]=a[i][j]+MAX(dp[i+1][j],dp[i+1][j-1]);
                else dp[i][j]=a[i][j]+MAX(dp[i+1][j],MAX(dp[i+1][j-1],dp[i+1][j+1]));
            }
            printf("%d
    ",MAX(dp[1][4],MAX(dp[1][5],dp[1][6])));
        }
        return 0;
    }
  • 相关阅读:
    AJAX基础
    DOM事件机制(事件捕获和事件冒泡和事件委托)
    http协议
    DOM实战-js todo
    python常见面试题
    jQuery快速入门
    三级菜单
    购物车
    员工信息表
    random模块
  • 原文地址:https://www.cnblogs.com/2018zxy/p/9935923.html
Copyright © 2011-2022 走看看