HDU 1087 Super Jumping! Jumping! Jumping!
2012-03-01 21:50
351 查看
这一题是比较简单的动态规划,状态f[i]表示走前i个棋子时的最高分数,状态转移方程为f[i] = {max(f[j]), i > j && step[i] > step[j] + step[i]}.
AC code:
AC code:
1 ude <iostream> 2 #define MAX 1000 3 using namespace std; 4 5 int step[MAX]; 6 int f[MAX]; 7 int n; 8 int max_sum(int i) 9 { 10 int max = 0; 11 int j; 12 for(j = 0; j < i; j++) 13 { 14 if(f[j] > max && step[j] < step[i]) 15 { 16 max = f[j]; 17 } 18 } 19 return max; 20 } 21 22 int main() 23 { 24 int max; 25 while(scanf("%d", &n)!=EOF && n) 26 { 27 memset(step, 0, sizeof(step)); 28 memset(f, 0, sizeof(f)); 29 for(int i = 0; i < n; i++) 30 scanf("%d", &step[i]); 31 f[0] = step[0]; 32 max = 0; 33 for(int i = 1; i < n; i++) 34 f[i] = max_sum(i) + step[i]; 35 for(int i = 0; i < n; i++) 36 if(f[i] > max) 37 max = f[i]; 38 printf("%d\n", max); 39 } 40 return 0; 41 }
相关文章推荐
- HDU-1087(Super Jumping! Jumping! Jumping!)(LCS)
- 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!_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!
- Problem C:Super Jumping! Jumping! Jumping!(HDU 1087)
- HDU 1087 Super Jumping! Jumping! Jumping!
- Hdu 1087 Super Jumping! Jumping! Jumping!
- hdu 1087 Super Jumping! Jumping! Jumping!
- hdu 1087 Super Jumping! Jumping! Jumping! (LIS)
- hdu 1087 Super Jumping! Jumping! Jumping!
- hdu 1087 Super Jumping! Jumping! Jumping!(简单dp)
- [简单DP]Super Jumping! Jumping! Jumping! HDU - 1087
- hdu 1087 Super Jumping! Jumping! Jumping! ----dp
- hdu - 1087 - Super Jumping! Jumping! Jumping!