网格填充曲折是一条封闭的路径,它至少访问一次正方形网格的每个像元,从未与相邻像元之间的任何边缘交叉超过一次,也从未与自身相交。例如:
填充后,网格的每个单元格都可以由以下8个图块之一表示:
以这种方式编号,以上蜿蜒的图块可以通过以下矩阵表示:
5 6 5 6
4 8 3 2
5 7 6 2
4 3 4 3
给定一组不完整的图块,您的任务是完成网格填充曲折。例如,不完整的曲折:
...可以使用0
s表示缺少的图块:
5 0 0 0 6
0 0 7 0 0
0 0 0 0 3
2 4 0 0 0
0 0 3 0 0
...可以这样完成:
...即:
5 6 5 1 6
4 8 7 6 2
5 7 7 7 3
2 4 8 8 6
4 1 3 4 3
技术指标
- 输入将始终具有至少且至多(非空)的瓷砖,其中。
- 您可以使用任何一组值来表示图块,只要在答案中指定了该值即可。
- 您的输入和输出可以采用任何格式和顺序,只要在答案中指定即可。
- 对于所有输入,至少存在一个有效的解决方案(即,您不需要处理无效的输入)。
- 适用标准I / O规则。
- 禁止出现标准漏洞。
- 鼓励甚至对“实用”语言进行解释。
测试用例
输入(Θ):
0 6 0 0
输出(Θ):
5 6 4 3
输入(Θ):
5 6 5 6 4 0 3 2 5 7 6 2 4 3 4 3
输出(Θ):
5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3
输入(Θ):
5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0
输出(Θ):
5 6 5 1 6 4 8 7 6 2 5 7 7 7 3 2 4 8 8 6 4 1 3 4 3
沙盒:codegolf.meta.stackexchange.com/a/17888/11261
—
约旦
@Arnauld你是正确的;这是无效的。曲折是一条封闭的路径。
—
约旦
@Arnauld谢谢,我已经进行了更改。我没有意识到此站点上启用了MathJax!
—
约旦