(step3.2.2)hdu 1087(Super Jumping! Jumping! Jumping!——简单DP)
2013-08-13 20:39
501 查看
题目大意:求上升子序列的最大和值(注意这里求的是最长上升子序列)
解题思路:
1)状态转移方程:f[i] = max(f[i], f[j] + a[i]);
2)具体实现过程这样来,首先记录下N个数
a[] 数组,对于每个数开辟一个 f[] 数组,用来记录到达该数值时的最大和值,f[]数组很重要,因为它能够对解决后面的问题提供信息,记录局部的最有解
3)需要注意的是:本体求的是上升子序列的最大和值而不是连续上升子序列的最大和值。如
对于测试数据4 1 3 2 4 ,输出的应该是8,而不是6
代码如下:
解题思路:
1)状态转移方程:f[i] = max(f[i], f[j] + a[i]);
2)具体实现过程这样来,首先记录下N个数
a[] 数组,对于每个数开辟一个 f[] 数组,用来记录到达该数值时的最大和值,f[]数组很重要,因为它能够对解决后面的问题提供信息,记录局部的最有解
3)需要注意的是:本体求的是上升子序列的最大和值而不是连续上升子序列的最大和值。如
对于测试数据4 1 3 2 4 ,输出的应该是8,而不是6
代码如下:
/* * 1087_2.cpp * * Created on: 2013年8月13日 * Author: Administrator */ #include <stdio.h> #include <string.h> #include <algorithm> int max(int a, int b) { return a > b ? a : b; } int f[1010]; int a[1010]; /** * a[]: 保存的是输入的每一个数 * f[] :用来记录到达该记录时的最大和值. * maxs :保存全局最大和值 */ int main() { int n; while (scanf("%d", &n) != EOF, n) { memset(f, 0, sizeof(f)); int i, j; for (i = 1; i <= n; ++i) { scanf("%d", &a[i]); f[i] = a[i];//一开始用来记录第i个数.后来用来记录到达第i个数时的最大和值 } int maxs = f[1]; for (i = 2; i <= n; ++i) { for (j = 1; j < i; ++j) { if (a[i] > a[j]) { f[i] = max(f[i], f[j] + a[i]); maxs = max(maxs, f[i]); } } } printf("%d\n", maxs); } }
相关文章推荐
- HDU 1087 Super Jumping! Jumping! Jumping! 【简单dp思维题】
- HDU 1087Super Jumping! Jumping! Jumping! —简单DP
- [简单DP]Super Jumping! Jumping! Jumping! HDU - 1087
- hdu 1087 Super Jumping! Jumping! Jumping! 简单的dp
- HDU 1087 Super Jumping! Jumping! Jumping! && 1114 Piggy-Bank 简单dp
- hdu 1087Super Jumping! Jumping! Jumping!(简单的dp就是一个判断条件两个for循环,将这个量与前面出现的两进行比较)
- 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 上升子序列最大和)
- Super Jumping! Jumping! Jumping! -HDU 1087 dp
- hdu 1087 Super Jumping! Jumping! Jumping! (简单 LIS)
- HDU 1087 Super Jumping! Jumping! Jumping!【DP】
- HDU-1087-DP-Super Jumping! Jumping! Jumping!
- hdu 1087 Super Jumping! Jumping! Jumping! (最大 上升子序列 线性 dp)