hdu1087Super Jumping! Jumping! Jumping!【动态规划】

来源:互联网 发布:中国气象科学数据网 编辑:程序博客网 时间:2024/06/04 22:32
#include <iostream>using namespace std;//题意:求一个数组的严格的递增序列最大和//动态方程:dp[i] = max(dp[i], dp[j] + heigh[i]) , 1<= j<=i, heigh[j] <= heigh[j]#define NSIZ 100010int heigh[NSIZ];int dp[NSIZ];int main(){int i, j, n;int sum = 0;while(scanf("%d", &n) != EOF && n){for(i = 1;i <= n; ++i){scanf("%d", &heigh[i]);dp[i] = heigh[i];}dp[0] = 0;sum  = -1;for(i = 1;i <= n; ++i){for(j = 1;j <= i; ++j){if(heigh[j] < heigh[i]){dp[i] = max(dp[i], dp[j] + heigh[i]);}}if(sum < dp[i]){sum = dp[i];}}printf("%d\n", sum);}return 0;}


原创粉丝点击