Problem I: 用分枝定界法求解TSP问题

"
Time Limit $1$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $453$ 正确数量 $431$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签 图论

已知N个城市之间的相互距离,现有一推销员必须遍访这N个城市,并且每个城市只能访问一次,最后又必须返回出发城市。如何安排他对这些城市的访问次序,可使其旅行路线的总长度最短?
用图论的术语来说,假设有一个图G = ( V , E ) ,其中V是顶点集合,E 是边集合,设D = [ d(i,j) ]是由顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶点且每个顶点只通过一次的具有最短距离的回路。

输入数据由若干行组成;第一行为问题的规模N即城市的数目,剩下的N行为一个N*N的距离矩阵。
请输出周游路线的最短距离。
4
0 30 6 4
30 0 5 10
6 5 0 20 
4 10 20 0
25