欢迎光临散文网 会员登陆 & 注册

最大上升子序列和

2023-03-07 20:58 作者:仓鼠翞  | 我要投稿

//最大上升子序列和
//dp[i]:包含a[i]在内的前i个元素的最大上身子序列和
//input:7
//1 7 3 5 9 4 8
//output
//18
#include<bits/stdc++.h>
using namespace std;

int n;
int a[100];
int dp[100];

int main()
{
   scanf("%d",&n);
   for(int i=0;i<n;i++)
   {
       scanf("%d",&a[i]);
   }
   dp[0] = a[0];
   for(int i=1;i<=n;i++)
   {
       dp[i] = -1;
       for (int j = 0; j < i; j++)
       {
           if (a[i] > a[j] )
           {
               int mid = dp[j] + a[i];
               dp[i] = max(mid,dp[i]);//统计最大值
           }
       }
   }
   for(int i=0;i<n;i++)
   {
       printf("%d ",dp[i]);
   }
}

最大上升子序列和的评论 (共 条)

分享到微博请遵守国家法律