问题 4361 --棋盘

4361: 棋盘

题目描述

  乐乐有一个8行8列的棋盘,他想在一些格子上放置鹅卵石。输入一个8×8的矩阵表示棋盘,“#”表示他想在该格子放鹅卵石,“.”表示不想放。
最初,棋盘上什么也没有。乐乐要把鹅卵石一个一个放上去。现在需要你来安排顺序,使标记为“#”的地方都放了鹅卵石(当然其他地方不能放),并且使最终的总花费(每步的花费加起来)最小。
放置一个鹅卵石的费用定义如下:
如果原来棋盘什么也没有,那么本次放置无需花费;
否则,本次放置的费用为“原来放置的鹅卵石”中与“本次放置的鹅卵石”的切比雪夫距离的最大值(参见说明)。

输入

输入一个8行8列的矩阵,全部由“#”和“.”组成。

输出

输出一个整数,表示最终的最小花费。

样例输入输出

输入#1 复制
........
........
...#....
.#......
.......#
........
........
........
输出#1 复制
8
输入#2 复制
........
........
........
........
........
........
........
........
输出#2 复制
0
输入#3 复制
##..####
#####..#
..#.#...
#..##.##
.#.###.#
####.###
#.#...#.
##....#.
输出#3 复制
168

提示

【说明】
格子(x1, y1)和格子(x2, y2)的切比雪夫距离定义为max( |x1-x2| , |y1-y2| ),其中|a|表示取a的绝对值, max(a, b)表示取a,b的最大值。
【样例1解释】
乐乐想在(3, 4), (4, 3), (5, 8)这三个位置放鹅卵石。其中一种最优方案是:
首先,在(3, 4)放置鹅卵石,费用为0.
然后,在(4, 2)放置鹅卵石,费用为max(|3-4|,|4-2|) = 2.
最后, 在(5, 8)放置鹅卵石。(5, 8) 和 (3, 4) 的切比雪夫距离是4, (5, 8) 和 (4, 2)的曼哈顿距离是6, 所以最终花费是max(4, 6) = 6.
总费用为 0 + 2 + 6 = 8.

【数据范围】

设需要放置鹅卵石的格子数(即“#”的个数)为n。
对于30%的数据,n ≤ 10;
对于60%的数据,n ≤ 20;
对于100%的数据,n ≤ 64。


序号 标题 作者 发表时间 费用 订购数 操作