📄 pro.rtf
字号:
if(i>>(j-1)&1==0){ //j点不在集合i中
min=INF;
for(k=1;k<=CityNum;k++){
if(i>>(k-1)&1 !=0){ //k点在集合i中
Dij[j][i] = Distance[j][k]+Dij[k][i-(1<<(k-1))];//递推公式
就少加了一个括号,结果就错误
涉及到优先级
正确应为if((i>>(j-1)&1)==0)
D:\TSP\TSP>tsp TSP4.txt
The lowest cost of searched rout is 4
The searched Path is :
1->4->1->1->1
time :0
D:\TSP\TSP>tsp TSP6.txt
The lowest cost of searched rout is 18
The searched Path is :
1->3->1->1->1->1->1
time :0
for(j=CityNum-1;j>0;j--){ //逆向求各个结点
//直接放进数组内有问题
curpos=routine[curpos][k-(1<<(curpos-1))];
printf("->%d",curpos+1);
}
D:\TSP\TSP>tsp TSP6.txt
The lowest cost of searched rout is 175
The searched Path is :
1->2->4->2->4->2->4
time :79
D:\TSP\TSP>tsp TSP6.txt
The lowest cost of searched rout is 175
The searched Path is :
1->2->4->2->4->2->4
time :32
D:\TSP\TSP>tsp TSP4.txt
The lowest cost of searched rout is 25
The searched Path is :
1->3->2->3->2
time :0
The lowest cost of searched rout is 371
The searched Path is :
1->9->14->8->6->13->5->15->3->4->7->12->2->10->11->1
time :63
D:\TSP\TSP>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -