HDU 1087 Super Jumping! Jumping! Jumping!

来源:互联网 发布:2016年网络经典口头禅 编辑:程序博客网 时间:2024/06/05 18:22

题目链接~~>

做题感悟:这题跟上一题都看了很久,没有忍住百度了一下,然后~~

解题思路:动态方程      F[ i ] = max{ g[ i ] , F[ j ] ( 0<=j<i ) } .

代码:

#include<stdio.h>#include<iostream>#include<map>#include<string>#include<string.h>#include<stdlib.h>#include<queue>#include<algorithm>using namespace std ;const int MX = 300005 ;int g[1005],b[1005] ;int main(){    int n ;    while(~scanf("%d",&n)&&n)    {        for(int i=0 ;i<n ;i++)           scanf("%d",&g[i]) ;        int best=0 ;        b[0]=g[0] ;        for(int i=1 ;i<n ;i++)        {            int mx=g[i] ;            for(int j=0 ;j<i ;j++)              if(g[j]<g[i]&&b[j]+g[i]>mx)                     mx=b[j]+g[i] ;             b[i]=mx ;             best = best > mx ? best : mx ;        }        printf("%d\n",best) ;    }    return 0 ;}


 

 

0 0
原创粉丝点击