SP11871 FUKU11G - Captain Qs Treasure

题目描述

你发现了一张由臭名昭著的海盗「Captain Q」绘制的旧地图,上面标示了岛上许多宝箱的埋藏位置。 地图被划分成若干个方格,每个方格上可能有一个数字,或者什么都没有。这个数字表示此方格及其周围8个相邻方格中宝箱的数量。你可以假设每个方格最多只有一个宝箱。 虽然你拥有这张地图,但你无法确切知道宝箱埋藏的具体位置,甚至岛上宝箱的总数是多少也不清楚。不过,我们可以计算出岛上宝箱的最小数量。你的任务就是编写程序来计算这个最小值。

输入格式

输入包含多个数据集。每个数据集按以下格式给出: ``` h w map ``` 第一行包括两个正整数 $h$ 和 $w$,分别表示地图的高度和宽度,可以假设 $1 \leq h \leq 15$ 且 $1 \leq w \leq 15$。 接下来的 $h$ 行是地图的具体描述。每行包含 $w$ 个字符,表示地图的一行。每个字符表示一个方格的状态,具体规则如下: - `.`:该方格是海域,不属于岛屿,没有宝箱。 - `*`:该方格属于岛屿,但不清楚周围9个方格内的宝箱数量。 - `0` 到 `9`:该方格属于岛屿,数字表示其周围9个方格内宝箱的数量。 你可以肯定地图是合理的,即至少存在一种宝箱排列方式。且带数字的方格数至少为1,最多不超过15。输入的结束标志是一行包含两个零的行。

输出格式

对于每个数据集,输出单独一行,表示宝箱的最少数量。输出中不应包含其他字符。 **本翻译由 AI 自动生成**