注意:对于喜欢逻辑问题等的任何人来说,这都是一个具有挑战性的问题。
考虑一个高度为 H 和宽度为 W 的矩形二维网格。网格上的每个空间都有一个值,要么0
1
要么2
。最初,网格上的每个空间都是 a 0
,除了沿着四个边中的每一个的空间,它们最初是 a 2
。
然后考虑相邻(水平或垂直)网格空间的任意路径。路径开始于 a2
并结束于不同的2
。路径上的每个空间都是1
.
该路径将网格划分为两个0
空间“扇区”。有一个物体停在一个未指定的0
空间上。不包含对象的“扇区”必须用 完全填充2
。
定义一个算法,该算法确定必须从 变为的空间2
,0
给定一个数组(列表),该数组(列表)对应于网格中的值0
,从上到下1
,2
然后从左到右。换句话说,数组中索引 0 处的元素包含网格中左上角空间的值(最初是 a 2
)。索引 1 处的元素包含网格中左侧列中的空间值,从顶部算起第二个,依此类推。索引 H 处的元素包含网格中顶行但左数第二个的空间值,依此类推。
一旦算法完成并且空的“扇区”完全被 s 填充2
,SAME 算法必须足以再次执行相同的过程。第二次(和上)时间,路径仍然从 a 绘制2
到不同的2
,跨越 的空间0
,但是“网格”更小,因为2
被其他 s 包围的2
s 不能被路径触及(因为路径是沿0
) 的空间。
我非常感谢能够为我解决这个问题的人。这不必使用特定的编程语言;事实上,伪代码或只是英文就足够了。再次感谢!如果您有任何问题,请发表评论,我会指定需要指定的内容。