旅行商問題

2021-09-29 02:10:34 字數 575 閱讀 9625

一銷售商從n個城市中的某一城市出發,不重複地走完其餘n-1個城市並回到原出發點,在所有可能的路徑中求出路徑長度最短的一條。本題假定該旅行商從第1個城市出發。

對每個測試例,第1行有兩個整數:n(4≤n≤10)和m(4≤m≤20 ) ,n是結點數,m是邊數。接下來m行,描述邊的關係,每行3個整數:(i,j),length,表示結點i到結點j的長度是length。

當n=0時,表示輸入結束。

對每個測試例,輸出最短路徑長度所經歷的結點,最短的長度

//旅行商問題

#define num 100

int n; //圖g的頂點數量

int m; //圖g的邊數

int a[num][num]; //圖g的鄰接矩陣

int x[num]; //當前解

int bestx[num]; //當前最優解向量

int cc; //當前費用

int bestc; //當前最優值

int noedge = -1; //無邊標記

void backtrack(int t)

return;

}else }}

}

旅行商問題

旅行商問題 乙個商人從城市a出發,訪問bcde等城市各一次最後回到a,問行程如何使得路程或費用最低。這是個np 非多項式可解,但一般驗證容易 問題,假設中間有4個城市,那麼全排列為4!24種,沒有很好的演算法,基本只能窮舉了。class vertex 4 public class lianxi pu...

旅行商問題

題意 旅行商問題,即從 1 走到 n 不重不漏,然後求最小距離。題解 狀態壓縮dp,顯然的是,要從某種狀態到某種狀態並且合法,然後取 min 然後全部遍歷。所以設 dp 的含義是,最後乙個點是 i 點,然後走過了 j 這個 01 串的有 1 的點。然後要想的是順序問題,那麼我們必然是從上乙個點推到 ...

旅行商問題(貪婪法)

h greedytsp.h created on 2011 7 12 author 哈哈 ifndef greedytsp h define greedytsp h include using namespace std include include void printstate vector ...