hdu 1087 Super Jumping! Jumping! Jumping!
2017-01-04 23:34
281 查看
vjudge今晚不知道怎么了,抽风了一段时间,于是我接着复习去了,结果又不想复习再一连就连上来了,算了刷刷水题,涨涨自信吧。
记忆化搜索dp,思路不说了,注意一下longlong不要溢出就可以。
题目链接:https://vjudge.net/problem/HDU-1087
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1005;
int n;
int G[maxn];
long long dp[maxn];
long long dfs (int pos) {
if (pos == n) return dp[pos] = G[pos];
if (dp[pos]) return dp[pos];
long long ans = G[pos];
for (int i = 1 ; i <= n-pos ; i++)
if(G[pos] < G[pos+i]) ans = max(ans , dfs(pos+i)+G[pos]);
return dp[pos] = ans;
}
int main () {
while (scanf("%d" , &n) != EOF && n) {
long long ans = 0;
memset(dp,0,sizeof(dp));
memset(G, 0,sizeof(G));
for (int i = 1 ; i <= n ; i++)
scanf("%d" , &G[i]);
for(int i = 1 ; i <= n ; i++)
ans = max(ans , dfs(i));
printf("%d\n" , ans);
}
}
记忆化搜索dp,思路不说了,注意一下longlong不要溢出就可以。
题目链接:https://vjudge.net/problem/HDU-1087
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 1005;
int n;
int G[maxn];
long long dp[maxn];
long long dfs (int pos) {
if (pos == n) return dp[pos] = G[pos];
if (dp[pos]) return dp[pos];
long long ans = G[pos];
for (int i = 1 ; i <= n-pos ; i++)
if(G[pos] < G[pos+i]) ans = max(ans , dfs(pos+i)+G[pos]);
return dp[pos] = ans;
}
int main () {
while (scanf("%d" , &n) != EOF && n) {
long long ans = 0;
memset(dp,0,sizeof(dp));
memset(G, 0,sizeof(G));
for (int i = 1 ; i <= n ; i++)
scanf("%d" , &G[i]);
for(int i = 1 ; i <= n ; i++)
ans = max(ans , dfs(i));
printf("%d\n" , ans);
}
}
相关文章推荐
- 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! 【简单dp思维题】
- hdu 1087 Super Jumping! Jumping! Jumping! (最大递增子序列和)
- hdu 1087 Super Jumping! Jumping! Jumping! 简单的dp
- 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! 动态规划
- hdu1087 Super Jumping! Jumping! Jumping! (求最大递增子序列和)
- Super Jumping! Jumping! Jumping! -HDU 1087 dp
- HDU 1087 Super Jumping! Jumping! Jumping! 最大连续子序列和
- hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
- HDU-1087 Super Jumping! Jumping! Jumping! 最长上升子序列
- hdu 1087 Super Jumping! Jumping! Jumping!