哈密顿路

2 、哈密顿路
hamilton.cpp
邮递员在送信时,为了节省路途,自己规定:每次总是从 n n  个村子中选择其中一个合适的
村子出发,途中每个村子仅且经过一次,送完所有的信。已知各个村子的道路连通情况。
输出所有符合要求的路线。如果没有输出 “o no  road” ” 。
输入:
第一行:整数 n n :村子的个数。
接下来是一个 n n*n 的 的 0 0 、1 1  矩阵,表示 n n  个村子的连同情况,如:1 a[i,j]=1  ,表示第 i i  和
第 第 j j  个村子之间有路可走,如果  a[i,j]=0 ,表示他们之间无路可走。
输出:按序号从小到大输出所有可行的线路
输入:
7 7
0 0 1 1 0 0 1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 0 1 1 0 0 0 0
0 0 1 1 0 0 0 0 0 0 0 0 1 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 1 1 0 0 1 1
0 0 0 0 1 1 0 0 0 0 1 1 0 0
输出:
2 2 3 3 7 7 6 6 5 5 1 1 4 4
3 3 7 7 6 6 5 5 2 2 1 1 4 4
4 4 1 1 2 2 3 3 7 7 6 6 5 5
4 4 1 1 2 2 5 5 6 6 7 7 3 3
4 4 1 1 5 5 2 2 3 3 7 7 6 6
4 4 1 1 5 5 6 6 7 7 3 3 2 2
5 5 6 6 7 7 3 3 2 2 1 1 4 4
6 6 7 7 3 3 2 2 5 5 1 1 4 4

***应该是可以用回溯吧。类似一种递归的,类似于当初的素数环,可能吧。。。。看做有一堆座位,然后嘞就挨着坐,是一就坐下不是就下一个。满足条件了就输出就好了,但是好像正宗的题解还有什么有向无向图的。。未来的某一天我可能就会了然后我就可以更新题解了叭。

原文地址:https://www.cnblogs.com/rax-/p/8620658.html