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 }
//求每个点当前状态的最大上升子序列和
时间: 2024-10-08 19:13:51