SP8583 NPOWM - Garden
题目描述
瓦夏拥有一个非常美丽的乡村花园,这个花园是一个大小为 $n \times m$ 的矩形区域,被划分为 $n \cdot m$ 个方格。有一天,鲍勃想起需要在花园中选取的 $k$ 个重要位置之间修建一条路径,为此他打算在某些格子中铺上混凝土。
花园中的每个格子都有一个数值 $a_{ij}$,代表坐标为 $(i, j)$ 的格子中生长的花的数量。当铺设混凝土时,该格子中的所有花都会被摧毁。
鲍勃希望能够聪明地铺设混凝土,需满足以下条件:
- 所有 $k$ 个重要的格子必须被混凝土覆盖。
- 任何两个重要格子之间必须存在一条由混凝土连接的路径,路径上的格子必须是相邻(共享边)的。
- 被摧毁的花的数量尽可能少。
由于花园面积较大,瓦夏请求你协助他完成这个任务。
输入格式
第一行输入三个整数 $n, m, k$,分别表示花园的行数、列数和重要格子的数量($1 \le n, m \le 100$,$1 \le k \le n \cdot m$)。接下来的 $n$ 行中,每行包含 $m$ 个整数 $a_{ij}$,表示每个格子中生长的花的数量($1 \le a_{ij} \le 1000$)。接着的 $k$ 行中,每行包含两个整数 $x_i, y_i$,表示每个重要格子的坐标($1 \le x_i \le n$,$1 \le y_i \le m$)。
输出格式
第一行输出一个整数,表示在布置路径过程中被摧毁的花的最小数量。接下来输出 $n$ 行,每行用 $m$ 个字符描述花园的铺设方案,其中字符 `X` 表示已铺设混凝土的格子,而 `.` 表示未铺设的格子。如果存在多种方案,任选其一输出即可。
### 示例
#### 输入
```
3 3 2
1 2 3
1 2 3
1 2 3
1 2
3 3
```
#### 输出
```
9
.X.
.X.
.XX
```
**本翻译由 AI 自动生成**