20pts,思路没问题
查看原帖
20pts,思路没问题
1086709
mediocre_114514楼主2023/9/9 15:27
#include <bits/stdc++.h>
using namespace std;
int f[10][10][10][10], a[10][10], n, x, y, z;
int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i) {
		scanf("%d%d%d", &x, &y, &z);
		if (x == 0) break;
		a[x][y] = z;
	}
	for (int i = 1; i <= n; ++i)
	    for (int j = 1; j <= n; ++j)
	        for (int k = 1; k <= n; ++k)
	            for (int l = 1; l <= n; ++l) {
					f[i][j][k][l] = max({f[i - 1][j][k - 1][l], f[i - 1][j][k][l - 1], f[i][j - 1][k - 1][l], f[i][j - 1][k][l - 1]}) + a[i][j];
					if (j != l || i != k) f[i][j][k][l] += a[k][l];
				}
	printf("%d", f[n][n][n][n]);
	return 0;
}
2023/9/9 15:27
加载中...