社区讨论

数据太水

P1004[NOIP 2000 提高组] 方格取数参与者 4已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@loc9e9bj
此快照首次捕获于
2023/10/30 10:06
2 年前
此快照最后确认于
2023/11/04 21:53
2 年前
查看原帖
我的方法n<=400n<=400都能AC
CPU i7-7660U
P1004传送门
CPP
#include <iostream>
#include <cstdio>
using namespace std;
int n;
int a[15][15];
int f[15][15];
int main() {
	scanf("%d",&n);
	while (true) {
		int x,y,w;
		scanf("%d%d%d",&x,&y,&w);
		if (x == 0) break;
		a[x][y] = w;
	}
	for (int step = 2; step < 2 * n; step++) {
		int l = max(1,step - n);
		int r = min(n,step);
		for (int i = r; i >= l; i--) {
			for (int j = r; j >= i + 1; j--) {
				int v = max(max(f[i][j],f[i][j - 1]),
							max(f[i - 1][j],f[i - 1][j - 1]));
				f[i][j] = v + a[i][step - i] + a[j][step - j];
			}
		}
	}
	int ans = f[n - 1][n] + a[n][n];
	printf("%d",ans);
	return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...