【题目描述】
邮递员在送信时,为了节省路途,自己规定:每次总是从 n 个村子中选择其中一个合适的村子出发,途中每个村子仅且经过一次,送完所有的信。已知各个村子的道路连通情况。输出所有符合要求的路线。如果没有输出“no road”。
【输入】
第一行:整数 n:村子的个数。接下来是一个 n*n 的 0、1 矩阵,表示 n 个村子的连同情况,如:a[i,j]=1 ,表示第 i 和第 j 个村子之间有路可走,如果 a[i,j]=0,表示他们之间无路可走。
【输出】
按序号从小到大输出所有可行的线路
【样例输入】
7
0 1 0 1 1 0 0
1 0 1 0 1 0 0
0 1 0 0 0 0 1
1 0 0 0 0 0 0
1 1 0 0 0 1 0
0 0 0 0 1 0 1
0 0 1 0 0 1 0
【样例输出】
2 3 7 6 5 1 4
3 7 6 5 2 1 4
4 1 2 3 7 6 5
4 1 2 5 6 7 3
4 1 5 2 3 7 6
4 1 5 6 7 3 2
5 6 7 3 2 1 4
6 7 3 2 5 1 4
=======================题解======================
深搜。
首先邻接表存图,之后从1开始深搜,用vis数组记录是否走过,return时改回false,走过的地方数等于总数时或vis==true时return。在递归时同时输出答案。