HDU 1087 Super Jumping! Jumping! Jumping!(dp)
2014-04-29 15:55
281 查看
题目: http://acm.hdu.edu.cn/showproblem.php?pid=1087
题意:
求一串序列的最大的递增子序列的和。N<=1000
题解:
动态规划,用dp[i]表示以第i个数为结尾的最大递增数列和。假设只有一个数的时候,例如10,dp[1]显然为10,假设有三个数,10,1,3,dp[1]=10,dp[2]初始值为1,即只有自身作为子序列,然后再判断是否更新,即与在它之前的序列结尾比较,若递增则更新为衔接后的结果。设value[i]为第i个数值,因为value[2]<value[1]就不能更新,则dp[2]的结果为1,dp[3]初始化为value[3]=3,判断更新,value[3]>value[2],则更新dp[3]=d[2]+value[3]
代码:
题意:
求一串序列的最大的递增子序列的和。N<=1000
题解:
动态规划,用dp[i]表示以第i个数为结尾的最大递增数列和。假设只有一个数的时候,例如10,dp[1]显然为10,假设有三个数,10,1,3,dp[1]=10,dp[2]初始值为1,即只有自身作为子序列,然后再判断是否更新,即与在它之前的序列结尾比较,若递增则更新为衔接后的结果。设value[i]为第i个数值,因为value[2]<value[1]就不能更新,则dp[2]的结果为1,dp[3]初始化为value[3]=3,判断更新,value[3]>value[2],则更新dp[3]=d[2]+value[3]
代码:
#include<cstdio> #include<cstring> int dp[1001]; int value[1001]; int max(int a,int b) { return a>b?a:b; } int main() { int n; while(~scanf("%d",&n)) { int i; if(n==0) break; for(i=1;i<=n;i++) { scanf("%d",&value[i]); } memset(dp,0,sizeof(dp)); dp[1]=value[1]; int ans=dp[1]; for(i=2;i<=n;i++) { int j; dp[i]=value[i]; for(j=1;j<i;j++) { if(value[j]<value[i]) { dp[i]=max(dp[i],dp[j]+value[i]); } } if(ans<dp[i]) ans=dp[i]; } printf("%d\n",ans); } return 0; }
相关文章推荐
- HDU 1087 Super Jumping! Jumping! Jumping! 【简单dp思维题】
- hdu 1087 Super Jumping! Jumping! Jumping! 简单的dp
- HDU 1087 Super Jumping! Jumping! Jumping!(DP)
- HDU 1087 Super Jumping! Jumping! Jumping! (dp)
- Hdu 1087 Super Jumping! Jumping! Jumping! (DP)
- hdu 1087 Super Jumping! Jumping! Jumping!(dp:上升子序列最大和)
- hdu 1087Super Jumping! Jumping! Jumping!(简单的dp就是一个判断条件两个for循环,将这个量与前面出现的两进行比较)
- hdu1087 - Super Jumping! Jumping! Jumping! (dp 求递增子序列的最大和)
- HDU 1087 Super Jumping! Jumping! Jumping!(基础DP)
- HDU 1087 Super Jumping! Jumping! Jumping!(最长上升子序列,dp)
- HDU-1087 Super Jumping! Jumping! Jumping!( DP )
- HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大上升子序列
- hdu 1087 Super Jumping! Jumping! Jumping!(DP)
- HDU 1087 Super Jumping! Jumping! Jumping!(dp最长上升子序列的和)
- HDU---1087-Super Jumping! Jumping! Jumping!(DP)
- HDU 1087 Super Jumping! Jumping! Jumping!【dp】
- hdu 1087 Super Jumping! Jumping! Jumping!(水DP)
- HDU 1087 Super Jumping! Jumping! Jumping! DP 水题, 没能水过
- HDU - 1087 Super Jumping! Jumping! Jumping! (DP)
- hdu 1087 Super Jumping! Jumping! Jumping!(简单dp)