最大上升子序列和

 1 //最大上升子序列和
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstdlib>
 5 using namespace std;
 6 const int maxx=1001;
 7 int a[maxx],g[maxx];
 8 int main()
 9 {
10     int n;
11     scanf("%d",&n);
12     for(int i=1;i<=n;i++)
13     scanf("%d",&a[i]);
14     int maxl=0;
15     for(int i=1;i<=n;i++)
16     {
17         g[i]=a[i];
18         for(int j=1;j<=i-1;j++)
19         {
20             if(a[j]<a[i]&&g[i]<g[j]+a[i])
21             g[i]=g[j]+a[i];
22         }
23         if(g[i]>maxl)
24         maxl=g[i];
25     }
26     printf("%d",maxl);
27     return 0;
28 }
View Code

//求每个点当前状态的最大上升子序列和

原文地址:https://www.cnblogs.com/zzyh/p/6679804.html