dp。
#include<iostream>
using namespace std;
int dp[1010],a[1010];
int vis[1010];
int n;
int main()
{
while(cin>>n)
{
if(n==0) break;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
memset(vis,0,sizeof(vis));
memset(dp,0,sizeof(dp));
dp[1]=a[1];
for(int i=2;i<=n;i++)
{
for(int j=i-1;j>=1;j--)
{
if(a[i]>a[j]&&dp[i]<dp[j]+a[i])
{
vis[i]=1;
dp[i]=dp[j]+a[i];
}
}
if(vis[i]==0)
dp[i]=a[i];
}
int ans=0;
for(int i=1;i<=n;i++)
{
if(dp[i]>ans)
ans=dp[i];
}
cout<<ans<<endl;
}
return 0;
}
hdu 1087 Super Jumping! Jumping! Jumping!
最新推荐文章于 2021-06-03 22:19:53 发布