AcWing
  • 首页
  • 题库
  • 题解
  • 分享
  • 问答
  • 活动
  • 应用
  • 吐槽
  • 登录/注册

AcWing 1016. 最大上升子序列和    原题链接    简单

作者: 作者的头像   rushhhhh ,  2021-02-22 14:14:48 ,  阅读 15


0


#include <iostream>
using namespace std;
/*
状态表示f[i]
    集合:以f[i]结尾的上升子序列的和
    属性:最大值,max
状态计算
    if(a[i] > a[j])
        f[i] = max(f[j], a[i] + f[j])
*/


const int N = 1010;
int n;
int f[N], a[N];

int main()
{
    cin >> n;
    for(int i=0; i<n; i++)
    {
        cin >> a[i];
        f[i] = a[i];
    }

    for(int i=0; i<n; i++)
        for(int j=0; j<i; j++)
            if(a[i] > a[j])
                f[i] = max(f[i], f[j] + a[i]);
    int ans = -1;
    for (int i = 0; i < n; ++i)
        ans = max(ans, f[i]);
    cout << ans;
    return 0;
}

0 评论

你确定删除吗?

© 2018-2021 AcWing 版权所有  |  京ICP备17053197号-1
联系我们  |  常见问题
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息