Super Jumping! Jumping! Jumping! HDU - 1087
题意:求序列中,权值最大的上升序列
不难卡的也不严。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct node{
int x;
int dp;
}jump[1000+10];
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
for(int i=0;i<n;i++)
{
scanf("%d",&jump[i].x);
jump[i].dp=jump[i].x;
}
int maxn=jump[0].dp;
for(int i=1;i<n;i++)
{
for(int j=0;j<i;j++)
{
if(jump[i].x>jump[j].x)
{
jump[i].dp=max(jump[j].dp+jump[i].x,jump[i].dp);
if(jump[i].dp>maxn)
maxn=jump[i].dp;
}
}
}
printf("%d\n",maxn);
}
return 0;
}