Slitherlink 是一款在 $n \times n$ 网格上进行的益智游戏。网格中的某些单元格包含数字(称为线索)。解题者必须沿着某些单元格的边画线以形成一个回路,使得:
- 回路不会分叉或自交。
- 单元格中填写的数字等于回路经过的该单元格周围的边数。
示例问题
解法
构造一个具有完整线索但有多个解的 $n \times n$ Slitherlink 问题。此外,必须存在一对不同的解,它们满足所有线索,且共享的边数最多为 4 条。
注意:“完整线索”意味着问题中的每个单元格都应填入一个 $0, \dots, 4$ 之间的线索数字。“两个解共享 $x$ 条边”意味着恰好有 $x$ 条边同时出现在两个解中。
输入格式
第一行包含 $n$ ($2 \le n \le 20$)。保证答案一定存在。
输出格式
首先,输出一个 $n \times n$ 的矩阵 —— 即该问题。
然后,输出两个解 —— 两个 $n \times n$ 的矩阵。对于每个单元格,如果它在回路内部,输出“1”,否则输出“0”。
样例
输入 1
5
输出 1
2 2 2 1 2 2 2 3 1 1 2 2 2 1 1 3 2 3 3 2 1 0 1 1 3 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
说明 1
该示例仅展示了如何输出问题和解。它会得到 Wrong Answer 的判决。这两个解共享 9 条边,且第二个解并不满足所有线索。