時間限制:1000 ms | 記憶體限制:65535 kb
難度:3
描述
神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。 這是乙個由海洋、島嶼和海盜組成的危險世界。傑克船長準備從自己所占領的島嶼a開始征程,逐個去占領每乙個島嶼。面對危險重重的海洋與詭譎的對手,如何憑藉智慧型與運氣,建立起乙個強大的海盜帝國。
傑克船長手頭有一張整個海域的海圖,上面詳細地記錄了各個海嶼的位置,以及海嶼之間的通航路線。但他發現,有的航海路線太危險了,傑克船長的戰船很難直接通過,他必須想方設法繞道航行;還有的島嶼根本到達不了。
傑克船長現在想把航行的危險程度降到最小。具體地來說,就是傑克船長提出若干個詢問,他想知道從島嶼a 到島嶼b 有沒有行駛航線,若有的話,所經過的航線,危險程度最小可能是多少。
輸入
第1行: n m 表示有n個島嶼,m條直航路線
第2~m+1行: a b v 表示從島嶼a到島嶼b的航海路線的危險程度值為v。
接下面一行
: q 表示詢問的次數。
之後有q個行: a b 表示詢問從島嶼a 到島嶼b 所經過的航線,危險程度最小值
1所有資料都是正整數。輸入資料之間有乙個空格。
輸出
對於每個詢問,輸出佔一行,乙個整數,表示從島嶼a 到島嶼b 所經過的航線,危險程度最小值;若從島嶼a 無法到達島嶼b,則輸出-1。
樣例輸入
10 8
1 2 5
1 3 2
2 3 11
2 4 6
2 4 4
6 7 10
6 10 5
10 7 2
52 3
1 43 7
6 78 3
樣例輸出55
-15-1
#include #include#includeusing namespace std;
#define inf 0x3fffffff
#define maxn 105
int edge[maxn][maxn];
int a[maxn][maxn],path[maxn][maxn];
int n,m;
void floyd()
}}int main()
floyd();
int shortest[maxn];
scanf("%d",&q);
for(int i=1;i<=q;i++)
}return 0;
}
nyoj 1248 海島爭霸 floyd變形
神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。這是乙個由海洋 島嶼和海盜組成的危險世界。傑克船長準備從自己所占領的島嶼a開始征程,逐個去占領每乙個島嶼。面對危險重重的海洋與詭譎的對手...
nyoj 1248 海島爭霸 (並查集)
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。這是乙個由海洋 島嶼和海盜組成的危險世界。傑克船長準備從自己所占...
HNACM 七 B 海島爭霸
神秘的海洋,驚險的探險之路,打撈海底寶藏,激烈的海戰,海盜劫富等等。加勒比海盜,你知道吧?傑克船長駕駛著自己的的戰船黑珍珠1號要征服各個海島的海盜,最後成為海盜王。這是乙個由海洋 島嶼和海盜組成的危險世界。傑克船長準備從自己所占領的島嶼a開始征程,逐個去占領每乙個島嶼。面對危險重重的海洋與詭譎的對手...