#P930. 池塘

池塘

題目描述

你是一个建筑玩家,你想在你家前面的一片平地上建一个池塘

你想把池塘建在一个 m × n 的平地上,你简单挖了池塘大概的形状,你现在唯一要做的就是添水进去

每一次操作,你可以在 (x,y) 处放置一个水源,你不能在你没挖过的地方放置水源

这款游戏有一个特性(不是 bug ):在所有和空地 (x,y) 曼哈顿距离为 1 的位置有一个以上的水源,那 (x,y) 会变为水源

你现在想知道你至少需要多少次操作,才能填满池塘


(注:(a,b) 和 (c,d) 之间的曼哈顿距离为 |a-c|+|b-d|)

 

輸入格式

输入共 n+1 行

第一行为两个整数,分别为 m 和 n 的值

接下来有 n 行,每行共有 m 个值,表示你挖过的池塘形状,挖过的地方用 0 表示,没挖过的地方用 1 表示。

輸出格式

输出应有一行

第一行应有一个整数,为填满池塘的最少操作数

Samples

["3 3\r\n1 1 1\r\n1 0 1\r\n1 1 1","4 4\r\n1 1 1 1\r\n1 0 0 1\r\n1 1 0 1\r\n1 1 1 1","5 5\r\n1 1 1 1 1\r\n1 0 0 0 1\r\n1 0 1 0 1\r\n1 0 0 0 1\r\n1 1 1 1 1"]
["1","2","4"]

原始資料

  • Zero1 題號:a930
  • Hydro 題號:Z0930
  • Locale:zh_CN
  • Display:deprecated