求求各位看下我的dfs为什么有绿有红还有紫

P3392 涂条纹

@[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


|