這個程式設計題是來自於牛客網的位元組跳動2019春招研發部分程式設計題彙總,有感興趣的朋友們可以去原**檢視。
小明目前在做乙份畢業旅行的規劃。打算從北京出發,分別去若干個城市,然後再回到北京,每個城市之間均乘坐高鐵,且每個城市只去一次。由於經費有限,希望能夠通過合理的路線安排盡可能的省一些路上的花銷。給定一組城市和每對城市之間的火車票的價錢,找到每個城市只訪問一次並返回起點的最小車費花銷。
城市個數n(1城市間的車票價錢 n行n列的矩陣 m[n][n]
最小車費花銷 s
輸入
40 2 6 5
2 0 4 4
6 4 0 2
5 4 2 0
輸出13
說明共 4 個城市,城市 1 和城市 1 的車費為0,城市 1 和城市 2 之間的車費為 2,城市 1 和城市 3 之間的車費為 6,城市 1 和城市 4 之間的車費為 5,依次類推。假設任意兩個城市之間均有單程票可購買,且票價在1000元以內,無需考慮極端情況。
狀態壓縮
從狀態壓縮的特點來看,這個演算法適用的題目符合以下的條件:
解法需要儲存一定的狀態資料(表示一種狀態的乙個資料值),每個狀態資料通常情況下是可以通過 2 進製來表示的。這就要求狀態資料的每個單元只有兩種狀態,比如說棋盤上的格仔,放棋子或者不放,或者是硬幣的正反兩面。這樣用 0 或者 1 來表示狀態資料的每個單元,而整個狀態資料就是乙個一串 0 和 1 組成的二進位制數。
解法需要將狀態資料實現為乙個基本資料型別,比如 int,long 等等,即所謂的狀態壓縮。狀態壓縮的目的一方面是縮小了資料儲存的空間,另一方面是在狀態對比和狀態整體處理時能夠提高效率。這樣就要求狀態資料中的單元個數不能太大,比如用 int 來表示乙個狀態的時候,狀態的單元個數不能超過 32(32 位的機器)。
位操作實現技巧
動態規劃
略
#include #include #include using namespace std;
int getans(vector> &nums)
}cout << getans(edges) << endl;
}return 0;
}
(TSP)畢業旅行問題
小明目前在做乙份畢業旅行的規劃。打算從北京出發,分別去若干個城市,然後再回到北京,每個城市之間均乘坐高鐵,且每個城市只去一次。由於經費有限,希望能夠通過合理的路線安排盡可能的省一些路上的花銷。給定一組城市和每對城市之間的火車票的價錢,找到每個城市只訪問一次並返回起點的最小車費花銷。輸入描述 城市個數...
程式設計題 畢業旅行問題
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 小明目前在做乙份畢業旅行的規劃。打算從北京出發,分別去若干個城市,然後再回到北京,每個城市之間均乘坐高鐵,且每個城市只去一次。由於經費有限,希望能夠通過合理的路線安排盡可能的省一些路上的花銷。給定一組城市和每對城市之間的...
程式設計題 畢業旅行問題
程式設計題 畢業旅行問題 小明目前在做乙份畢業旅行的規劃。打算從北京出發,分別去若干個城市,然後再回到北京,每個城市之間均乘坐高鐵,且每個城市只去一次。由於經費有限,希望能夠通過合理的路線安排盡可能的省一些路上的花銷。給定一組城市和每對城市之間的火車票的價錢,找到每個城市只訪問一次並返回起點的最小車...