P1854 81pts求调
  • 板块灌水区
  • 楼主Na1L0n9
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/27 09:12
  • 上次更新2024/7/27 09:17:41
查看原帖
P1854 81pts求调
1045932
Na1L0n9楼主2024/7/27 09:12
#include <bits/stdc++.h>
using namespace std;
int f, v, a[110][110], dp[110][110], t;
void print (int k) {
	if (!k) {
		return;
	}
	int tmp = k;
	while (dp[k][tmp] != t) {
		tmp++;
	}
	t -= a[k][tmp];
	print(k - 1);
	cout << tmp << " ";
}
int main () {
	cin >> f >> v;
	memset(dp, -127, sizeof(dp));
	for (int i = 1; i <= 100; i++) {
		dp[0][i] = 0;
		dp[i][0] = 0;
	}
	for (int i = 1; i <= f; i++) {
		for (int j = 1; j <= v; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 1; i <= f; i++) {
		for (int j = i; j <= v - f + i; j++) {
			for (int k = i; k <= j; k++) {
				dp[i][j] = max(dp[i][j], dp[i - 1][k - 1] + a[i][k]);
			}
		}
	}
	cout << dp[f][v] << endl;
	t = dp[f][v];
	print(f);
	return 0;
}

开O2一红一紫,不开O2两红

2024/7/27 09:12
加载中...