[ABC264F] Monochromatic Path Solution

更好的阅读体验戳此进入

题面

给定一个 HW 列的 01 矩阵。你可以花费 Ri 将矩阵第 i 行进行 01 反转,可以花费 Cj 将矩阵第 j 列进行 01 反转。你需要最小化花费,并使得从 (1,1) 出发,只能向右或下走到达 (H,W) 至少有一条路径满足均为 01

Solution

首先不难想到每一行或一列最多进行一次反转操作,否则是无用的。发现只能向右或向下,则无后效性,故可以尝试 DP。

dp(i,j,0/1,0/1) 表示处理到第 ij 列,第 i 行和第 j 列是否反转的最小花费。

我们设当前状态为 dp(i,j,x,y),令 Gi,j 表示矩阵的元素,则对于向下走的下一步的转移比较显然:

dp(i,j,x,y)dp(i+1,j,0,y)Gi,jxy=Gi+1,jydp(i,j,x,y)+Ri+1dp(i+1,j,1,y)Gi,jxyGi+1,jy

对于向右走的下一步也同理可得。

初始值即为 dp(1,1,0,0)0,dp(1,1,1,0)R1,dp(1,1,0,1)C1,dp(1,1,1,1)R1+C1

最终答案即为 min{dp(H,W,x,y)}

Code

UPD

update-2023_01_03 初稿