文章

150

粉丝

0

获赞

558

访问

23.3k

头像
最大递增子序列和 题解:
P1940 南京理工大学2023年机试题
发布于2026年2月14日 16:12
阅读数 71

#include <bits/stdc++.h>
using namespace std;

int dp[1001], a[1001], n;

int LIS_nn() {
    int ans = 0;
    for (int i = 1; i <= n; ++i) {
        dp[i] = a[i];  // 初始化:至少包含自己
        for (int j = 1; j < i; ++j) {
            if (a[j] < a[i]) {  // 满足上升条件
                dp[i] = max(dp[i], dp[j] + a[i]);
            }
        }
        ans = max(ans, dp[i]);
    }
    return ans;
}

int main() {
    while (cin >> n) {
        for (int i = 1; i <= n; ++i) {
            cin >> a[i];
        }
        cout << LIS_nn() << endl;
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发