lcs

最大上升子序列和

http://www.nowcoder.com/questionTerminal/dcb97b18715141599b64dbdb8cdea3bd

又开始水题了,lcs变形,状态转移条件稍微更改一下即可,lcs是求上升子序列的长度,因此

这里是求最大和,因此


ps:这题明明和上一题基本一样

int main() {
    ll n, a[MAX], dp[MAX];
    while (cin >> n) {
        for (int i = 0; i < n; i++)cin >> a[i], dp[i] = a[i];
        for (int i = 1; i < n; i++)
            for (int j = 0; j < i; j++)
                if (a[i] > a[j] && dp[j] + a[i] > dp[i])
                    dp[i] = dp[j] + a[i];
        ll res = 0;
        for (int i = 0; i < n; i++)res = max(res, dp[i]);
        cout << res << endl;
    }
}
全部评论

相关推荐

2024-12-10 17:38
广州新华学院 Node.js
想逆袭好楠:太紧凑了感觉,文字好多看的眼花,建议自我评价删了,因为自我评价都是吹嘘自己的,感觉没什么价值,然后改一下排版
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务