最短路徑
time limit: 1000 ms memory limit: 32767 k
total submit: 208(28 users) total accepted: 31(20 users) rating: special judge: no
description
給出乙個有向帶權圖g,針對該圖有如下的兩種操作:
(1)標記該圖的乙個點
(2)找到兩點間的只通過已標記點的最短路徑長度
輸入:輸入包括多組測試,每組測試中第一行包括三個整數n,m,q,n表示圖中的節點數量,n<=300,
m表示邊的數量,m<=100000;q表示執行多少次操作,q<=100000,所有點被編號為0,1,2,...,n-1,
最初所有的點都是未標記的,接下來m行每行包括三個整數x,y,c,表示從x到y有一條邊長度為c,c>0,然
後為q行,每行表示一次操作,0 x表示將點x標記,1 x y表示查詢x到y的只通過已標記點的最短路徑長度,
n=m=q=0是輸入結束。
輸出:輸出以一行"case #:"開始,#表示為第幾組測試,從1開始
對於0 x操作,如果x已經被標記過了,輸出"error! at point x".
對於1 x y操作,如果x或y沒有被標記過,輸出"error! at path x to y",如果無法從x通過標記過的節
點到達y,輸出"no such path",否則輸出要求的最短路徑長度,每組測試後有乙個空行。
input
輸入包括多組測試,每組測試中第一行包括三個整數n,m,q,n表示圖中的節點數量,n<=300,
m表示邊的數量,m<=100000;q表示執行多少次操作,q<=100000,所有點被編號為0,1,2,...,n-1,
最初所有的點都是未標記的,接下來m行每行包括三個整數x,y,c,表示從x到y有一條邊長度為c,c>0,然
後為q行,每行表示一次操作,0 x表示將點x標記,1 x y表示查詢x到y的只通過已標記點的最短路徑長度,
n=m=q=0是輸入結束。
output
輸出以一行"case #:"開始,#表示為第幾組測試,從1開始
對於0 x操作,如果x已經被標記過了,輸出"error! at point x".
對於1 x y操作,如果x或y沒有被標記過,輸出"error! at path x to y",如果無法從x通過標記過的節
點到達y,輸出"no such path",否則輸出要求的最短路徑長度,每兩組測試之間有乙個空行。
sample input
5 10 10
1 2 6335
0 4 5725
3 3 6963
4 0 8146
1 2 9962
1 0 1943
2 1 2392
4 2 154
2 2 7422
1 3 9896
0 10 3
0 20 4
0 40 1
1 3 3
1 1 1
0 30 4
0 0 0
sample output
case 1:
error! at point 4
error! at point 1
0 0error! at point 3
error! at point 4
要懂得floyd演算法原理,對每個頂點 所有邊都要鬆弛一遍,那麼這是在所有邊都可訪問的情況下。對於這個題目,可以每次標記乙個點,都以這個點為中心鬆弛所有邊
[cpp] view plaincopy
#include#includeusing namespace std;
const int inf=304;
int g[inf][inf];
int vis[inf];
int main()
cout<<"case "<>x;
if(x)
else}}
}}
}cout<}
return 0;
}
OJ 1008 最短路徑問題
include using namespace std const int n 1001 const int inf 100000000 typedef struct map map ma n n map temp n void init int n void dijkstra int s,int ...
南陽oj 街道最短路徑問題
這個題目的思路是乙個數學歸納的思路 在一維座標系內,所有點到乙個點集合中某個點的距離和最短,那麼這個點自然可以滿足在這個維度下所有的點到它的距離和最短 所以如果有是二維座標系的話,把每乙個維度下的那個所有點到那個點距離最短的點求出來,就組成了最後符合題意的郵局的座標 ac 如下 include in...
入門OJ 最短路徑樹入門
n 100,1 m 3000,1 len 10000。顯然,對於乙個點u,如果刪去的邊不在它到其它點的最短路上,那麼s是不會變的。考慮到兩點之間的最短路不止一條,我們可以給每個點先建出一棵最短路徑樹出來,然後列舉最短路徑樹上的每條邊並把它刪掉,再跑一遍最短路,看s是否變大即可。如果最短路用dijks...