for i in range(1, n - 1):
# 计算将前i行涂成W的代价
to_W = i * m - (a[i][0] - a[0][0])
# 搜索B所占行数,范围也是[1,n-2]
for j in range(1, n - 1):
# 计算将从i+1到i+j行涂成B的代价
to_B = j * m - (a[i + j][1] - a[i][1])
# 剩余行数不足一行就退出循环
if i + j >= n:
break
# 计算将从i+j+1到n行涂成R的代价
to_R = (n - i - j) * m - (a[n][2] - a[i + j][2])
ans = min(ans, to_W + to_B + to_R)
这层循环有问题,i从1到n-2,j从i+1到n-1应该就能通过,我是这样过d
by remake1958 @ 2024-03-24 11:39:04