注意:对于喜欢逻辑问题等的任何人来说,这都是一个具有挑战性的问题。
考虑一个高度为 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 包围的2s 不能被路径触及(因为路径是沿0) 的空间。
我非常感谢能够为我解决这个问题的人。这不必使用特定的编程语言;事实上,伪代码或只是英文就足够了。再次感谢!如果您有任何问题,请发表评论,我会指定需要指定的内容。