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 自动生成**