P12785 [ICPC 2024 Yokohama R] Remodeling the Dungeon 2

题目背景

译自 [ICPC 2024 Yokohama Regional Contest](https://icpc.jp/2024/)。

题目描述

_Icpca_ 王国的女王平静地居住在一座城堡中。一天,她决定重造城堡的地牢。 地牢是一个由方形单元格组成的矩形网格。部分单元格是可进入的房间,而其他则是不可进入的管道空间。所有相邻单元格之间都被一堵墙隔开。某些相邻房间之间的墙上安装了用于通行的门。地牢中任意一对房间都可以通过这些门连通。 女王希望重造地牢,使得任意一对房间之间仅存在唯一路径。此外,任意两个都只有一扇门的房间应通过一条经过偶数扇门的路径相连。 由于成本限制,重造时只能封锁部分(可能为零扇)门。 你的任务是找到一种满足女王要求的地牢重造方案。

输入格式

仅一组数据,格式如下所示: >$h$ $w$ > $c_{1,1}$ $c_{1,2}$ $\cdots$ $c_{1,2w+1}$\ > $c_{2,1}$ $c_{2,2}$ $\cdots$ $c_{2,2w+1}$\ > $\vdots$\ > $c_{2h+1,1}$ $c_{2h+1,2}$ $\cdots$ $c_{2h+1,2w+1}$ > 两个整数 $h$ 和 $w$ 表示地牢大小为 $h \times w$($1 \leq h,w \leq 400$)。 每个字符 $c_{i,j}$($1 \leq i \leq 2h+1$, $1 \leq j \leq 2w+1$)为 `.` 或 `#`,其含义如下: - 当 $i$ 和 $j$ 均为偶数时,$c_{i,j}$ 表示位于地牢第 $(i/2)$ 行(北向南)、第 $(j/2)$ 列(西向东)的单元格,记作单元格 $(i/2, j/2)$。若为 `.` 则是房间,若为 `#` 则是管道空间。 - 当 $i$ 为奇数且 $j$ 为偶数时,表示一堵墙。若 $i=1$ 或 $i=2h+1$,则为地牢外墙(始终为 `#`)。否则 $c_{i,j}$ 表示单元格 $((i−1)/2, j/2)$ 和 $((i+1)/2, j/2)$ 之间的墙。若为 `.` 则该墙有门,若为 `#` 则无门(门仅存在于两个房间之间的墙上)。 - 当 $i$ 为偶数且 $j$ 为奇数时,同样表示一堵墙。若 $j=1$ 或 $j=2w+1$,则为地牢外墙(始终为 `#`)。否则 $c_{i,j}$ 表示单元格 $(i/2, (j−1)/2)$ 和 $(i/2, (j+1)/2)$ 之间的墙。若为 `.` 则该墙有门,若为 `#` 则无门(门仅存在于两个房间之间的墙上)。 - 当 $i$ 和 $j$ 均为奇数时,$c_{i,j}$ 始终为 `#`,对应墙体的交叉点。 数据保证地牢中至少有一个房间,且任意一对房间存在连通路径。

输出格式

若无法按要求重造地牢,输出 $\texttt{No}$。否则第一行输出 $\texttt{Yes}$,接着按输入格式输出重造后的地牢配置(若有多种可能配置,输出任意一种即可)。