#include<iostream>
#include<cstring>
using namespace std;
int num[1010];
int dp[1010];
int DP(int i)
{
int j,max=0;
if(dp[i]==0)
{
for(j=0;j<i;j++)
{
if(num[j]<num[i])
{
if(max<DP(j))
max=DP(j);
}
}
dp[i]=max+num[i];
}
return dp[i];
}
int main()
{
int n,i,max;
while(cin>>n&&n)
{
memset(dp,0,sizeof(dp));
max=0;
for(i=0;i<n;i++)
cin>>num[i];
for(i=0;i<n;i++)
{
if(DP(i)>max)
max=DP(i);
}
cout<<max<<endl;
}
return 0;
}
hdu 1087 实际上就是求最大值递增子列
最新推荐文章于 2018-12-03 22:34:44 发布