pta7 7旅遊規劃(dijkstra演算法)

2022-08-21 19:45:08 字數 739 閱讀 1952

題意:給n給城市,m條公路,公路是雙向的,起點s,終點d,並給出每條公路連線的兩個city的編號以及路費,求s到d的最短距離,若具有最短距離的路線不止一條,求出路費最少的一條。

思路:單源最短路徑問題,利用dijkstra演算法求出s到其他點的最短路徑,只不過加乙個路費cost,在dis相等的情況下,取cost最小值。

ac**:

#includeusing

namespace

std;

const

int inf=0x3f3f3f3f

;int

n,m,s,d;

int dis[505],cost[505],a[505][505],b[505][505],vis[505

];void

dijkstra()

else

if(!vis[i]&&dis[i]==dis[k]+a[k][i]&&cost[i]>cost[k]+b[k][i])

cost[i]=cost[k]+b[k][i];

}}int

main()

for(int i=0;ii)

dis[i]=a[s][i],cost[i]=b[s][i];

dis[s]=cost[s]=0

; dijkstra();

printf(

"%d %d\n

",dis[d],cost[d]);

return0;

}

7 7 旅遊規劃 25 分

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

7 7 旅遊規劃 25分

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

PTA 旅遊規劃 (最短路)

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