HDU 1087 Super Jumping! Jumping! Jumping!
题解:最长上升子序列的扩展应用,不过,加上的是当前值,而不是1
/*最长上升子序列扩展应用*/ #include <cstdio> using namespace std; int n,d[1050],a[1050]; int dp() { int rs=0; for(int i=1;i<=n;i++) { d[i]=a[i]; for(int j=1;j<i;j++) if(a[i]>a[j]&&a[i]+d[j]>d[i])d[i]=a[i]+d[j]; if(d[i]>rs)rs=d[i]; } return rs; } int main() { while(scanf("%d",&n),n) { for(int i=1;i<=n;i++)scanf("%d",&a[i]); printf("%d\n",dp()); } return 0; }
愿你出走半生,归来仍是少年