标签:
给出一个序列,求所有上升序列中和最大的一个值m,(该序列不一定连续)
例如4 1 3 2 4这组数据的结果为8
#include<iostream> #include<cstring> #define maxn 1000+5 using namespace std; int rem[maxn],dp[maxn]; int main() { int n; while(cin>>n&&n) { for(int i=0;i<n;i++) cin>>rem[i]; memset(dp,0,sizeof(dp)); dp[0]=rem[0]; int re=rem[0]; for(int i=1;i<n;i++) { int sum=0; for(int j=0;j<i;j++) { if(rem[i]>rem[j]) sum=max(sum,dp[j]); } dp[i]=sum+rem[i]; re=max(re,dp[i]); } cout<<re<<endl; } return 0; }
hdu 1087 Super Jumping! Jumping! Jumping!
标签:
原文地址:http://blog.csdn.net/zafkiel_nightmare/article/details/45273453