📌  相关文章
📜  迷宫中的老鼠的C语言程序|英特尔®开发人员专区回溯2

📅  最后修改于: 2021-05-28 02:19:10             🧑  作者: Mango

我们已经讨论了Set 1中的Backtracking和Knight的巡回问题。让我们讨论迷宫中的Rat作为可以使用Backtracking解决的另一个示例问题。

迷宫作为块的N * N二进制矩阵给出,其中源块是最左上的块,即maze [0] [0],而目标块是最右下块的块,即maze [N-1] [N-1] 。老鼠从源头开始,必须到达目的地。老鼠只能在两个方向上移动:向前和向下。
在迷宫矩阵中,0表示该块是死胡同,而1表示该块可以在从源到目的地的路径中使用。请注意,这是典型迷宫问题的简单版本。例如,更复杂的版本可以是大鼠可以沿4个方向移动,而更复杂的版本可以具有有限的移动次数。

以下是迷宫的示例。

Gray blocks are dead ends (value = 0). 

以下是上述迷宫的二进制矩阵表示。

{1, 0, 0, 0}
                {1, 1, 0, 1}
                {0, 1, 0, 0}
                {1, 1, 1, 1}

以下是具有突出解决方案路径的迷宫。

以下是上述输入矩阵的解决方案矩阵(程序的输出)。

{1, 0, 0, 0}
                {1, 1, 0, 0}
                {0, 1, 0, 0}
                {0, 1, 1, 1}
 All enteries in solution path are marked as 1.