#P15888. [COCI 2025/2026 #6] Čokolada

[COCI 2025/2026 #6] Čokolada

说明

卢卡喜爱巧克力。他兴奋地准备享用一块生日时得到的、由 nnmm 列组成的大巧克力板。巧克力由黑色和白色方格组成。然而,卢卡并不喜欢白巧克力,只想吃黑色方格。

在开始享用之前,卢卡会对巧克力进行切割。他将在巧克力的行与行之间、列与列之间进行若干次垂直或水平切割。垂直切割从巧克力的上边缘一直切到下边缘,水平切割则从左边缘一直切到右边缘。完成切割后,卢卡会得到若干块矩形巧克力片。

由于卢卡只吃巧克力中的黑色部分,他希望将黑色方格与白色方格完全分离开。这意味着,切出的每一块必须完全由黑色巧克力组成,或者完全由白色巧克力组成。

卢卡宁愿尽快开始享用,而不是把时间浪费在切割上,因此他请你帮助确定,为了将黑色方格与白色方格分离,所需的最少切割次数。

:::align{center} :::

图 1:第一个样例中,为了以最少的切割次数将黑色部分与白色部分分离,巧克力应按图示方式切割。

输入格式

第一行包含两个自然数 nnmm1n,m2001 \le n, m \le 200),分别表示巧克力的行数和列数。

接下来的 nn 行,每行包含 mm 个字符,每个字符为 0011。字符 00 表示白色方格,11 表示黑色方格。

输出格式

输出一行一个整数,表示将黑色方格与白色方格分离所需的最少切割次数。

4 7
0000000
0111000
0111100
0000000
6
4 5
00000
01100
01100
00000
4
4 4
0101
1010
0101
1010
6

提示

第一个样例的解释:

如图中所示。

第二个样例的解释:

卢卡应在第 1 行与第 2 行之间、第 3 行与第 4 行之间、第 1 列与第 2 列之间、第 3 列与第 4 列之间各切一刀。

第三个样例的解释:

卢卡应在每两行之间和每两列之间都切一刀,总共 66 刀。

子任务 分值 限制
1 5 巧克力为棋盘格状,即第 ii 行第 jj 列的方格,当 i+ji+j 为偶数时为白色,奇数时为黑色。
2 11 n=1n = 1
3 恰好有一个黑色方格。
4 23 无额外限制。

翻译由 DeepSeek V3.2 完成