#P14939. [uoi2019]水管系统
[uoi2019]水管系统
题目描述
哥萨克·乌斯想成为波托科兰迪亚的总统。按照惯例,为了让善良的公民变得更加善良,也为了让自己在人民中更受欢迎,他需要为大家做一件好事。于是,他决定修理这个国家的水管系统。
水管系统位于地下。为了方便描述,它被划分成相同大小的正方形片段,整体可以看作一个 的网格。网格中的行从上到下编号为 到 ,列从左到右编号为 到 。
每个片段可能为空,用数字 表示;也可能包含下图所示的 种水管之一:

如果对于每一根水管,它的每一个端口都恰好与另一根水管的一个端口相连,则称这个水管系统是闭合的。
最近你被任命为哥萨克·乌斯的水管事务副手,因此你现在可以把任意一根水管旋转 的倍数角度。你的任务是:通过旋转若干水管,使整个水管系统变成闭合的;或者判断这是不可能的。
输入格式
第一行包含三个整数 (,),分别表示网格的长、宽以及测试组编号。
接下来 行,每行包含 个整数 (),表示坐标为 的格子中的水管类型。
输出格式
如果无法通过旋转水管形成闭合系统,输出:
NO
否则,先输出:
YES
然后输出 行,每行 个整数,表示通过旋转后得到的闭合水管系统。输出格式仍使用题目开头图中所示的编号方式。
样例 1
5 5 0
0 0 0 0 0
0 3 1 2 4
0 2 0 0 1
0 1 0 0 1
0 6 2 2 5
YES
0 0 0 0 0
0 5 1 1 6
0 2 0 0 2
0 2 0 0 2
0 4 1 1 3
样例 2
3 2 0
0 0
1 2
3 0
NO
样例 3
8 8 0
0 4 2 1 2 2 3 0
0 2 5 4 0 0 1 0
0 1 4 5 0 0 1 0
0 1 0 0 3 2 5 0
0 2 5 3 4 2 1 5
0 1 2 5 5 0 0 1
0 2 5 2 5 0 0 1
0 4 2 1 2 2 2 5
YES
0 5 1 1 1 1 6 0
0 2 5 6 0 0 2 0
0 2 4 3 0 0 2 0
0 2 0 0 5 1 3 0
0 2 5 6 4 1 1 6
0 2 2 4 6 0 0 2
0 2 4 1 3 0 0 2
0 4 1 1 1 1 1 3
样例解释
原题面给出的样例解释是一张总图,图中把三个测试样例的初始状态与闭合后的状态放在了一起:

注意:若存在多种合法闭合方案,输出任意一种均可。
计分方式
- 分:;
- 分:,至多有 根弯管;
- 分:,至多有 根弯管;
- 分:,;
- 分:,若存在解,则至少存在一个解使得每个闭合回路都由 根弯管和任意数量的直管组成;
- 分:,;
- 分:;
- 分:无额外限制。