python用到了二维前缀和为何还是过不去
查看原帖
python用到了二维前缀和为何还是过不去
1627552
meiguiOvO楼主2025/1/10 13:01

n = int(input()) matrix = [] for _ in range(n): matrix.append(list(map(int,input().split()))) s = [[0] * (n + 1) for _ in range(n + 1)] for i, row in enumerate(matrix): for j, x in enumerate(row): s[i + 1][j + 1] = s[i + 1][j] + s[i][j + 1] - s[i][j] + x mx = float('-inf')

以下这四个循环是为了枚举所有子矩阵用的。

for x1 in range(1, n + 1): for y1 in range(1, n + 1): for x2 in range(1, n + 1): for y2 in range(1, n + 1): if x2 < x1 or y2 < y1: continue current_sum = s[x2][y2] - s[x2][y1 - 1] - s[x1 - 1][y2] + s[x1 - 1][y1 - 1] mx = max(mx, current_sum) print(mx)

2025/1/10 13:01
加载中...