時間限制: 1 s
空間限制: 32000 kb
題目等級 : ** gold
題解平面上有n個點(n<=100),每個點的座標均在-10000~10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的任務是找出從一點到另一點之間的最短路徑。
輸入描述 input description
第一行為整數n。
第2行到第n+1行(共n行),每行兩個整數x和y,描述了乙個點的座標。
第n+2行為乙個整數m,表示圖中連線的個數。
此後的m行,每行描述一條連線,由兩個整數i和j組成,表示第i個點和第j個點之間有連線。
最後一行:兩個整數s和t,分別表示源點和目標點。
輸出描述 output description
僅一行,乙個實數(保留兩位小數),表示從s到t的最短路徑長度。
樣例輸入 sample input
0 02 0
2 20 2
3 11 2
1 31 4
2 53 5
1 5樣例輸出 sample output
3.41
敲個水題
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7#define n 101
8#define b(i) i*i
9double
dis[n][n];
10struct
nodeq[100*n];
13double run(int i,int
j) 18
intmain()
24 scanf("
%d",&m);
25 memset(dis,0x7f,sizeof
dis);
26for(int i=1;i<=m;i++)
30for(int k=1;k<=n;k++)
31for(int i=1;i<=n;i++)
32for(int j=1;j<=n;j++)
33if(dis[i][j]>dis[i][k]+dis[k][j])
34 dis[i][j]=dis[i][k]+dis[k][j];
35 scanf("
%d%d
",&from,&to);
36 printf("
%.2lf\n
",dis[from
][to]);
37return0;
38 }
2602 最短路徑問題
題目描述 description 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的任務是找出從一點到另一點之間的最短路徑。輸入描述 input descrip...
codevs2602 最短路徑問題
題目描述 description 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的任務是找出從一點到另一點之間的最短路徑。輸入描述 input descrip...
Codevs 2602 最短路徑問題
時間限制 1 s 空間限制 32000 kb 題目等級 gold 題目描述 description 輸入描述 input description 第一行為整數n。第2行到第n 1行 共n行 每行兩個整數x和y,描述了乙個點的座標。第n 2行為乙個整數m,表示圖中連線的個數。此後的m行,每行描述一條連...