出門旅行 tour

2022-02-14 21:50:40 字數 1218 閱讀 5595

在神奇的 oi 國度,有 n 個城市 m 條雙向道路,每條道路連線了兩個不同的城市。寒假到了,小 s 決定出門旅遊一趟。因為以往跟團旅遊多了,這次小 s 決定自駕遊。對於自駕遊,小 s 最關心的自然是燃油的耗費,為了省錢,小 s 請你幫他找一條最短的路。

第一行兩個整數 n,m,表示有 n 個城市和 m 條雙向道路。城市從 1..n 編號。

接下來 m 行,每行三個正整數 a,b,c,表示 a 和 b 之間有一條長為 c 的雙向道路。a,b 不相同,且 c 不超過 1000

注意:兩個城市之間可能會有多條雙向道路。

接下來一行兩個整數,s,t,表示小 s 本次旅行的出發地和目的地。s,t 不相同。

僅一行乙個整數,表示最短的距離。如果不能到達,請輸出-1。

3 3

1 2 1

1 3 3

2 3 1

1 3

2
【樣例解釋】

1->2->3 即是最優解。

【資料範圍】

對於 30%的資料,n<=100,m<=1000

對於 100%的資料,n<=2000,m<=100000

時間限制:1000ms

空間限制:128mbyte

#includeusing

namespace

std;

intn, m;

struct

enode

};struct

node

bool

operator

< (const node &a) const

};vector

e[200005

];priority_queue

q;int dis[2005

];bool vis[2005

];int

main()

memset(dis,

0x3f3f3f3f, sizeof

(dis));

memset(vis,

0, sizeof

(vis));

cin>>s>>t;

dis[s] = 0

; q.push(node(

0, s));

while(!q.empty())

}if(dis[t] == 0x3f3f3f3f) cout<<-1

}

UVA 1347 Tour 雙調旅行商

題意 平面上有n個點。乙個人要從左上角的點向右走,到右下角的點,然後再回到左上角的點。現在想讓這個人每個點到達一次,且走的總路程的距離最小。求出最小的距離。思路 雙調旅行商問題。因為起點和中途點已知,我們可以把這個問題轉化成兩個人從左上角出發,分別不重複的到達其他點,最後在右下角的點匯合。可以注意到...

POJ 2677 Tour 雙調旅行商

題意 給你 n 個二維座標上的點,你需要經過所有的點然後走回原地,求最短路徑。思路 我們先給所有的點按照 x 座標公升序排列,因為要走成環我們可以看成兩個人同時從第乙個點開始走,定義 dp i k 表示第乙個人走到第 i 個點第二個人走到第 k 個點的最短距離 走在前面的人是 i 對於任意乙個點i來...

旅行青蛙出門及回家準備事項攻略彙總

旅行青蛙出門及回家準備事項攻略彙總。雖然遊戲看起來很簡單,但是日文的版本玩家肯定不知所措,下面小編就為玩家們帶來旅行青蛙出門還有回家攻略。旅行青蛙出門準備事項 在為你的青蛙收拾行李的時候不要只帶食物,要盡可能的把行李帶滿。並程式設計客棧且食物不是只值 10 個三葉草葡萄乾司康和 20 個三葉草的鵝腸...