贴片只能覆盖同一行里的 1×2 区域,因此每一行互相独立。
对每一行从左到右扫描:一旦遇到字符 0,必须立刻贴一次把它变成 1。贪心地同时覆盖它右侧的格子(若存在),这样能顺带消除后续可能的 0,次数最少。
若 0 落在该行最后一列,这次贴片与左侧已是 1 的格子组成 1×2,效果上只新涂这一格。
把所有行的贴片次数相加即为答案。
产线侧有一块 n 行 m 列的质检面板,每个格子是字符 0 或 1。一次贴片必须覆盖同一行里相邻的两列(即 1×2,不能选 2×1),并把这两格都变成 1;本来就是 1 的格子保持为 1。贴片允许重叠。
请计算把面板上所有字符都变成 1 所需的最少贴片次数。
约束:2≤n,m≤103,矩阵仅由字符 0 和 1 组成。
第一行包含两个正整数 n 和 m,用空格隔开,表示行数与列数,满足 2≤n,m≤103。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.