problem description
tonyy是乙個喜歡到處浪的男人,他的夢想是帶著蘭蘭姐姐浪遍**的各個角落,不過在此之前,他需要做好規劃。
現在他的手上有乙份**地圖,上面有n個城市,m條交通路徑,每條交通路徑都是單行道。他已經預先規劃好了一些點作為旅遊的起點和終點,他想選擇其中乙個起點和乙個終點,並找出從起點到終點的一條路線親身體驗浪的過程。但是他時間有限,所以想選擇耗時最小的,你能告訴他最小的耗時是多少嗎?
input
包含多組測試資料。
輸入第一行包括兩個整數n和m,表示有n個地點,m條可行路徑。點的編號為1 - n。
接下來m行每行包括三個整數i, j, cost,表示從地點i到地點j需要耗時cost。
接下來一行第乙個數為s,表示可能的起點數,之後s個數,表示可能的起點。
接下來一行第乙個數為e,表示可能的終點數,之後e個數,表示可能的終點。
0小於s, e≤n≤100000,0<m≤100000,0<cost≤100。
output
輸出他需要的最短耗時。
sample input
4 4
1 3 1
1 4 2
2 3 3
2 4 4
2 1 2
2 3 4
sample output
1#include#include#include#includeusing namespace std;
const int maxn=100000+10;
const int inf=0x3f3f3f3f;
struct node
e[maxn];
int d[maxn],first[maxn],inq[maxn],a[maxn],b[maxn];
int n,m,len,st_num,ed_num;
void spfa()}}
}int ans=inf;
for(int i=0;i
多源最短路徑
可以簡單的通過執行 v 次單源最短路徑演算法來解決,每次使用乙個不同的結點作為源結點 多數演算法採用鄰接矩陣來表示圖,因此 演算法的輸入為乙個n n的矩陣w,代表乙個有n個結點的有向圖g v,e 的邊的權重 wij 0 若i j 權重 若i j,且 i,j 屬於e inf 若i j,且 i,j 不屬...
多源最短路徑問題 floyd warshall
儲存圖如下 的演算法思想 該段 的基本思想是 最開始只允許1號頂點進行中轉,接下來只允許經過1號和2號頂點進行中轉.允許經過1 n號所有頂點進行中轉,求任意兩個點之間的最短距離用一句話概括,就是從i號頂點到j號頂點只經過前k號點的最短路徑 floyd warshall核心演算法 5行 for k 1...
多源最短路徑問題(bfs)
公司的程式設計師不夠用了,決定把產品經理都轉變為程式設計師以解決開發時間長的問題。在給定的矩形網格中,每個單元格可以有以下三個值之一 每分鐘,任何與程式設計師 在4個正方向上 相鄰的產品經理都會變成程式設計師。返回直到單元格中沒有產品經理為止所必須經過的最小分鐘數。如果不可能,返回 1。以下是乙個4...