HDU 1087 Super Jumping! Jumping! Jumping!
2017-03-23 08:47
351 查看
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1087
解题思路:
这是单最长调递增子序列的一个变形
d[i]:表示以a[i]结尾的序列和的最大值。
因此定义下面的状态方程:
在初始以d[i]结尾的序列只有a[i]一个,因此d[i]=a[i].
实现代码:
解题思路:
这是单最长调递增子序列的一个变形
d[i]:表示以a[i]结尾的序列和的最大值。
因此定义下面的状态方程:
在初始以d[i]结尾的序列只有a[i]一个,因此d[i]=a[i].
实现代码:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN=2005; const int INF=1<<20; int End,n; int a[MAXN]; int dp[MAXN]; /****************************************** dp[i]:表示以a【i】结尾,单调递增序列和的最大值 ******************************************/ void solve(){ int res=-INF; for(int i=0;i<n;i++){ dp[i]=a[i]; for(int j=0;j<i;j++){ if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+a[i]); } res=max(dp[i],res); } cout<<res<<endl; } int main(){ while(scanf("%d",&n)!=EOF&&n){ for(int i=0;i<n;i++) scanf("%lld",&a[i]); solve(); } return 0; }
相关文章推荐
- HDU 1087 Super Jumping! Jumping! Jumping! 最大递增子序列
- hdu 1087-Super Jumping! Jumping! Jumping!
- HDU 1087 Super Jumping! Jumping! Jumping!
- HDU 1087 Super Jumping! Jumping! Jumping!
- hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
- HDU 1087 Super Jumping! Jumping! Jumping!(DP)
- HDU 1087 Super Jumping! Jumping! Jumping!
- HDU-1087Super Jumping! Jumping! Jumping!
- HDU-1087-Super Jumping! Jumping! Jumping!
- hdu1087 Super Jumping! Jumping! Jumping!
- HDU 1087 Super Jumping! Jumping! Jumping!
- HDU 1087 Super Jumping! Jumping! Jumping!
- HDU 1087 Super Jumping! Jumping! Jumping! 上升序列最大和+DP .
- HDU 1087 Super Jumping! Jumping! Jumping! 【简单dp思维题】
- HDU 1087:Super Jumping! Jumping! Jumping!(DP之LIS)
- HDU 1087 Super Jumping! Jumping! Jumping!(最大上升子序列和)
- HDU 1087 Super Jumping!Jumping!Jumping求连续上升子序列的最大和值 (解析)
- HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大上升子序列
- HDU1087--Super Jumping! Jumping! Jumping! (DP动态规划最大上升子序列的和)
- HDU 1087 Super Jumping! Jumping! Jumping!