简单的DP练习_杭电1087
2012-11-24 20:59
302 查看
简单的DP
#include<iostream> #include<string> using namespace std; int main() { int a[1010]; int dp[1010]; int n, max; int i1, i2, i3; while( cin >> n ) { if( n == 0) break; for( i1 = 0; i1 < n; i1 ++ ) { cin >> a[i1]; dp[i1] = a[i1]; //先将每个数的递增子序列设为其本身 } for( i2 = 0; i2 < n; i2 ++ ) { max = 0; for( i3 = 0 ; i3 < i2 ; i3++) if( a[i2] > a[i3] && max < dp[i3]) //如果a[i2]前面没有比它小的数,dp[i2] = a[i2], 如果前面有比它小的数, { //那么dp[i2]是在前面比它小的数中, 选出递增子序列最大的数i3 dp[i2]+= dp[i3]; max = dp[i3]; dp[i2]= dp[i3] + a[i2]; } } for( i1 = 0, max = 0; i1 < n; i1++) if( max < dp[i1] ) max = dp[i1]; cout << max << endl; memset( dp, 0, sizeof(dp)); memset( a, 0, sizeof(a) ); } return 0; }
相关文章推荐
- hdu 1087Super Jumping! Jumping! Jumping!(简单的dp就是一个判断条件两个for循环,将这个量与前面出现的两进行比较)
- 杭电2851 简单dp
- 杭电 线段树 (个人整理(基础入门版))(多题练习.)(简单风格)
- 杭电2851 简单dp
- hdu 1087 Super Jumping! Jumping! Jumping!(简单dp)
- 杭电1003(简单dp)
- 已经没办法再简单的状压dp入门练习
- HDU 1087 Super Jumping! Jumping! Jumping! 简单DP
- HDOJ 1087 Super Jumping! Jumping! Jumping!简单DP
- hdu 1087 Super Jumping! Jumping! Jumping!(简单dp)
- hdu1087 简单DP
- hdu 1087 DP简单题
- hdu 1087 简单dp
- HDU 1087 Super Jumping! Jumping! Jumping! 【简单dp思维题】
- HDU 1087-Super Jumping! Jumping! Jumping!(简单DP)
- hdu 1421 1159 1087 1160 5366 1257 light OJ 1110 uva 562 简单dp
- 题解 简单限行dp 杭电OJ 1003
- DP 简单题目练习
- 小白算法练习 简单背包专题003 完全背包 hdu lanqiao 包子凑数 dp
- hdu 1087 Super Jumping! Jumping! Jumping! 简单的dp