蒟蒻90pts求条
查看原帖
蒟蒻90pts求条
999563
bhr123456楼主2025/1/3 20:16

90pts,WA on 3

代码:

#include <bits/stdc++.h>
using namespace std;
long long a[200][200], dp[105][105][200], ans = -9e18;
int n, k;
int main() {
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= i; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n + 1; j++) {
			for (int k = 0; k <= n; k++) {
				dp[i][j][k] = -9e18;
			}
		}
	}
	for (int i = n; i >= 1; i--) {
		for (int j = 1; j <= n; j++) {
			for (int k = 0; k <= min(k, n - i + 1); k++) {
				if (k > 0) {
					dp[i][j][k] = max(dp[i + 1][j][k - 1] + 3 * a[i][j], dp[i + 1][j + 1][k - 1] + 3 * a[i][j]);
				}
				dp[i][j][k] = max(dp[i][j][k], max(dp[i + 1][j][k] + a[i][j], dp[i + 1][j + 1][k] + a[i][j]));
			}
		}
	}
	for (int i = 1; i <= min(n, k); i++) {
		ans = max(ans, dp[1][1][i]);
	}
	cout << ans;
//	cout << dp[1][1][k];
	return 0;
}
2025/1/3 20:16
加载中...