hdu 1087 Super Jumping! Jumping! Jumping!(动态规划DP)

来源:互联网 发布:linux修改host科学上网 编辑:程序博客网 时间:2024/06/15 10:01

题意:

在序列中任意选择一个起点,使得其上升序列之和最大。

思路:

跟(hdu1069--猴子摘香蕉)是一样的,只要后一个数字比前一个数字大就可以尝试累加,最后输出dp数组中的最大值即可。

hdu1069--猴子摘香蕉的题解:http://blog.csdn.net/qq_37325947/article/details/77108288

#include<iostream>#include<cstdio>#include<algorithm> using namespace std;int dp[1500],en[1500];int main(){int n;while(scanf("%d",&n)&&n){for(int i=0;i<n;i++)scanf("%d",&en[i]);for(int i=0;i<n;i++){dp[i]=en[i]; for(int j=i-1;j>=0;j--)if(en[i]>en[j]){dp[i]=max(dp[i],en[i]+dp[j]);} }int mx=dp[0];for(int i=0;i<n;i++)if(dp[i]>mx) mx=dp[i];printf("%d\n",mx);}return 0;}


原创粉丝点击