2602 最短路徑問題

2022-05-03 17:51:07 字數 1370 閱讀 4668

時間限制: 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 #include6

using

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行,每行描述一條連...