题目链接:http://acm.zzuli.edu.cn/showproblem?problem_id=1457
此题有贪心算法的感觉,只是处理方法有些注意而已,应该说是贪心算法的一个小小应用而已,
此题代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include <stdio.h>
#include <string.h>
int a[1100];
int b[1100];
int main()
{
int max,i,j,k,n;
while(scanf("%d",&n),n!=0)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
b[0]=a[0];
for(i=1;i<n;i++)
{
max=0;
for(j=0;j<i;j++)
{
if(max<b[j]&&a[i]>a[j])
max=b[j];
}
b[i]=max+a[i];
}
max=0;
for(i=0;i<n;i++)
if(max<b[i])
max=b[i];
printf("%d\n",max);
}
return 0;
}