求助CE
  • 板块学术版
  • 楼主tabelog_AFO
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/7/6 15:39
  • 上次更新2023/11/3 11:19:47
查看原帖
求助CE
922589
tabelog_AFO楼主2023/7/6 15:39

帮忙看一下这段代码为什么会报错

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>

typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int uint;

namespace problem {
	const ll EOF = std::LLONG_MIN;
	
	int n, m;
	ll w[1000][1000], f[1000][1000][2];
	
	ll max(ll p, ll q, ll r) {
		return p > q ? (p > r ? p : r) : (q > r ? q : r);
	}
	
	ll dfs(int x, int y, int p) {
		if (x < 0 || x >= n || y < 0 || y >= m) return EOF;
		if (f[x][y][p] != EOF) return f[x][y][p];
		if (p == 0) f[x][y][p] = max(dfs(x + 1, y, 0), dfs(x, y - 1, 0), dfs(x, y - 1, 1)) + w[x][y];
		else f[x][y][p] = max(dfs(x - 1, y, 1), dfs(x, y - 1, 0), dfs(x, y - 1, 1)) + w[x][y];
		return f[x][y][p];
	}
	
	void main() {
		std::scanf("%d %d", &n, &m);
		for (int i = 0; i < n; ++i)
			for (int j = 0; j < m; ++j) {
				std::scanf("%lld", &w[i][j]);
				f[i][j][0] = f[i][j][1] = EOF;
			}
		f[1][1][0] = f[1][1][1] = w[1][1];
		ll ans = dfs(n, m, 1);
		std::printf("%lld\n", ans);
	}
}

int main() {
	problem::main();
	return 0;
}

2023/7/6 15:39
加载中...