大家康康哪里错了
查看原帖
大家康康哪里错了
791222
lby_commandBlock楼主2024/3/23 11:05

rt

#include<bits/stdc++.h>
#define endl '\n'
using namespace std;

const int N = 1e4 + 9;
const long long INF = numeric_limits<int>::max();

int dp[N], n, a[N], ans[N];

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++) cin >> a[i];
	for (int i = 1; i <= n; i++) {
		ans[i] = a[i];
		dp[i] = 1;
		for (int j = 1; j < i; j++) {
			if (a[j] <= a[i]) {
				if (dp[i] <= a[j] + 1) {
					dp[i] = a[j] + 1;
					ans[i] = max(ans[i], ans[j] + a[i]);
				}
			}
		}
	}
	for (int i = 1; i <= n; i++) cout << ans[i] << " \n"[i == n];
	return 0;
}
2024/3/23 11:05
加载中...