zoukankan      html  css  js  c++  java
  • hdu-acm steps 免费馅饼

    /*dp入门级的题目,和数塔是一样的,这道题不用做什么优化,感觉时间复杂度不会超。主要还是细节上的问题,

    这道题的状态和状态方程都容易找到,采用自底向上的方式会好很多*/

    #include"iostream"
    #include"algorithm"
    #include"stdio.h"
    #include"string.h"
    #include"cmath"
    #include"queue"
    #define mx 100005
    using namespace std;
    int dp[13][mx];//刚开始把13和mx写反了。。。wa了两次
    int n;
    int Max(int c,int b)
    {
    if(c>b) return c;
    else return b;
    }
    int main()
    {
    while(cin>>n,n)
    {
    int i,j,k;
    memset(dp,0,sizeof(dp));
    int x,t,t1;
    t=0;
    for(i=0;i<n;i++)
    {
    cin>>x>>t1;
    dp[x+1][t1]++;
    if(t1>t) t=t1;//这里要注意输入不一定是按时间递增的顺序
    }
    for(i=t;i>0;i--)
    for(j=1;j<=11;j++)
    {
    dp[j][i-1]+=Max(dp[j-1][i],Max(dp[j][i],dp[j+1][i]));
    }
    cout<<dp[6][0]<<endl;
    }
    return 0;
    }

  • 相关阅读:
    链式前向星啊
    并 查 集 ! ! !
    看似很水的题--找画笔
    tarjan
    动态内存分配
    C++ 基础中的基础 ---- 引用
    STL 补档
    错题笔记和易错点提醒
    题解 P2253 【好一个一中腰鼓!】
    PAT-A1003
  • 原文地址:https://www.cnblogs.com/acm-jing/p/4245668.html
Copyright © 2011-2022 走看看