H 乙個人的旅行(多源點多匯點最短路)

2021-10-04 16:56:05 字數 959 閱讀 2751

題目鏈結

題目大意:

乙個圖上,有m條邊,z個出發點,y個終止點。求一條最短路,其中起點是z中的任意一點,終點是y中任意一點。

思路:最短路問題,可以用dijkstra或者spfa來做,這裡我用的dijstara。

這道題的頂點並不是嚴格按照1-n來編序的,數目也並不為n,可以自己找到頂點最大值作為上限,也可以直接用題中給定的資料範圍(1=<(a,b)<=1000)1000作為上限。

注意:有重邊,並且重邊的值並不一定相同,所以要儲存每條邊的最小邊權。

錯誤點:多源點用for列舉每個源點時並計算一直執行錯誤。

改正:將所有的源點與頂點0相連(邊權為0),以0為源點,將多源點變為單源點。

**:

#include#include#includeusing namespace std;

#define ll long long

#define inf 0x3f3f3f3f

const int maxn=1100;

int k[maxn][maxn];

int dis[maxn];

int biao[maxn],stop[maxn];

void init(int n)

biao[0]=1;

}void dijstra(int n)}}

return ;

}int main()

for(int i=0; ifor(int i=0; iscanf("%d",&stop[i]);

int minn=inf;

init(maxx); //初始化

dijstra(maxx);

for(int j=0; jif(dis[stop[j]]minn=dis[stop[j]];

printf("%d\n",minn);

}}

乙個人的旅行(最短路)

problem description input 輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條路,和草兒家相鄰的城市的有s個,草兒想去的地方有d個 接著有t行,每行有三個整數a,b,time,表示a,b城市之間的車程是time小時 1 a,b 1000 a,b 之間可能有多條路 接...

乙個人旅行

乙個人旅行計畫正式啟動啦 一直想乙個人好好的出去走走轉轉.然後把遇到的看到的記錄下來,成為回憶.但是一直沒有鼓起勇氣或者說沒有找到好的藉口.經過長達四年的準備 嘿嘿,有點誇張 目前各方面已經就緒 2008年12月份 公園瀏覽年票 到位 2009年5月份 確實地說是上周五 2009.05.08 富士相...

乙個人的旅行

又是乙個下雨的夜晚,我獨自做在電腦前,看著窗外的細雨纏綿的下著,是乎及不情願,及不情願離開它的天堂,但它終究還是下來了.就連雨也擺脫比了命運的引力.不過我想,雨還是算幸福的,因為有成千上萬的雨一同降落.或許在降落的過程中,某兩顆雨滴融合在了一起,在滿天飛舞的雨中他們相遇,他們是幸福的,有的雨滴因為太...