@[ErgouTree](/user/1216518)
这道题直接暴力就行吧………………
[暴力の代码](https://www.luogu.com.cn/record/150955967)
放心,就是Python代码
by TPJ_XiaoJing @ 2024-03-15 18:17:49
@[TPJ_XiaoJing](/user/1280061) 后来用的题解的暴力思路过了,但是还是想知道我这个dfs有什么问题跑不起来)))
by ErgouTree @ 2024-03-15 19:24:25
@[TPJ_XiaoJing](/user/1280061)
大佬,可以帮忙看看我的代码有什么问题吗,全部wa了,自己实在调不出来
```python
n, m = map(int, input().split())
a = [[0, 0, 0]]
data = []
for i in range(n):
data.append(input())
# 使用前缀和统计前i行WBR的数量
for line in data:
b = [a[-1][0], a[-1][1], a[-1][2]]
for e in line:
if e == 'W':
b[0] += 1
elif e == 'B':
b[1] += 1
else:
b[2] += 1
a.append(b)
ans = 99999999
# 搜索W所占行数,范围是[1,n-2]
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)
print(ans)
```
by beach_ice_tea_guitar @ 2024-03-21 20:15:01