hdu 1087Super Jumping! Jumping! Jumping!
2011-04-17 23:17
141 查看
Super Jumping! Jumping! Jumping!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7997 Accepted Submission(s): 3210[align=left]Problem Description[/align]Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now.![](http://acm.hdu.edu.cn/data/images/1087-1.jpg)
3 1 3 2 4 1 2 3 4 4 3 3 2 1 0[align=left]Sample Output[/align]
4 10 3
#include<stdio.h> #include<string.h> #include<stdlib.h> int main( ) { int N; while(scanf("%d",&N)!=EOF,N) { int i,j,t,A[10000],sum[10000]; memset(A,0,sizeof(A)); memset(sum,0,sizeof(sum)); for(i=1;i<=N;i++) scanf("%d",&A[i]); for(i=1;i<=N;i++) sum[i]=A[i]; int flag=0; for(i=2;i<=N;i++)
{ for(j=i-1;j>=1;j--) {
if(A[j]<A[i]&&!flag) { sum[i]+=sum[j]; t=sum[i]; flag=1; }
else if(A[j]<A[i]) { t=sum[j]+A[i]; if (sum[i]<t) sum[i]=t; }
} flag=0; } int res=sum[1]; for(i=2;i<=N;i++) { if(sum[i]>res) res=sum[i]; } printf("%d\n",res); } return 0; }
也是简单dp,在老大提示思路后,做出来的。。开始提交时wrong answer ..因为没有考虑到这种情况。。7 6 4 5 7
回过头来才发现,这道题,竟然是被我模拟题意而水过的,哈哈,太没技术含量了,这道题是找给定序列的最大递增序列和,真正的好的做法也是找其状态转移方程:
sum[i]=max{sum[j]}+a[i];
求出每一次sum[i],找出最大的和就可以了..
#include<stdio.h>#include<string.h>#include<stdlib.h>int A[1010],sum[1010];int main( ){int N;while(scanf("%d",&N)!=EOF,N){memset(sum,0,sizeof(sum));int i,j,k,n=-1000,t;for(i=0;i<N;i++)scanf("%d",A+i);sum[0]=A[0];for(i=1;i<N;i++){t=0;for(j=0;j<i;j++)if(A[j]<A[i]&&t<sum[j])t=sum[j];sum[i]=t+A[i];if(sum[i]>n)n=sum[i];}printf("%d\n",n);}return 0;}
相关文章推荐
- 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!