7 9 旅遊規劃

2021-08-17 16:11:17 字數 963 閱讀 8010

輸入說明:輸入資料的第1行給出4個正整數n、

m、s、

d,其中n(

2≤n≤

500)是城市的個數,順便假設城市的編號為0~(n−

1);m是高速公路的條數;

s是出發地的城市編號;

d是目的地的城市編號。隨後的

m行中,每行給出一條高速公路的資訊,分別是:城市1、城市2、高速公路長度、收費額,中間用空格分開,數字均為整數且不超過500。輸入保證解的存在。

在一行裡輸出路徑的長度和收費總額,數字間以空格分隔,輸出結尾不能有多餘空格。

4 5 0 3

0 1 1 20

1 3 2 30

0 3 4 10

0 2 2 20

2 3 1 20

3 40

思路:最基本的最短路徑問題

#include#include#include#include#include#includeusing namespace std;

#define n 505

#define inf 9999999

int map[n][n],cnt[n],dis[n],n,m,s,d,val[n],book[n],p[n][n];

void dijkstra()

book[s] = 1;

for(int t = 0;t < n;t++)

}} book[index] = 1;

for(int i = 0;i < n;i++)else}}

}} }

}int main()

} for(int i = 0;i < m;i++)

dijkstra();

printf("%d %d\n",dis[d],cnt[d]);

return 0;

}

7 9 旅遊規劃

有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度 以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間的最短路徑。如果有若干條路徑都是最短的,那麼需要輸出最便宜的一條路徑。輸入說明 輸入資料的第1行給出4個正整數n m s d,其中n 2 n 500 是城市...

7 9 旅遊規劃 (25 分)

題目鏈結 這個題跟個板題差不多,跌死啦演算法,暑假第一周學過,當時學的挺明白的,現在就都忘了,又重新看了看網課,不錯,稍微看一點就行了,dij用來計算兩個點的最短路徑,就是不斷找最短的路,然後一次次的更新就行了。哎 怎麼都忘了 這個題我弄了個結構體就來存路長和過路費,然後跟板子一樣。還有今天大學的運...

7 9 旅遊規劃 (25 分)

有了一張自駕旅遊路線圖,你會知道城市間的高速公路長度 以及該公路要收取的過路費。現在需要你寫乙個程式,幫助前來諮詢的遊客找一條出發地和目的地之間的最短路徑。如果有若干條路徑都是最短的,那麼需要輸出最便宜的一條路徑。輸入說明 輸入資料的第1行給出4個正整數n m s d,其中n 2 n 500 是城市...