乙個人的旅行 hdu2066 最短路模板題

2021-10-02 10:08:34 字數 1461 閱讀 2279

其實就是最短路模板題。該圖為單源帶權無向圖最短路(注意是無向圖,一開始沒考慮到這個吃了虧)。表面上看是多個草兒家相連的城市(多源)到某個城市之間的最短路,但其實我們只要將草兒家編號定為0,將相連的城市和草兒家連起來並將權值設為0即可。

dijkstra版:

#include

#include

#include

using

namespace std;

int mp[

1010][

1010];

int dis[

1010];

bool vis[

1010];

int t, s, d;

struct node};

void

dijkstra

(int s));

while

(!q.

empty()

));}

}}}int

main()

while

(s--

)dijkstra(0

);while

(d--

)printf

("%d\n"

,ans);}

return0;

}

spfa版

#include

#include

#include

#include

#define max 10010

using

namespace std;

struct edge

;int n = max;

//節點數

long

long d[max]

;//最短路距離

bool vis[max]

;//判斷節點是否在佇列中

int s[max]

;//起點集合

int d[max]

;//終點集合

int cnt[max]

;//判斷負環

bool

spfa

(vector g,

int s)}}

}return

true;}

intmain()

for(

int i =

0;i < ids;i++

)scanf

("%d"

,&s[i]);

for(

int i =

0;i < idd;i++

)scanf

("%d"

,&d[i]);

for(

int i =

0;i < ids;i++)}

printf

("%d\n"

,ans);}

return0;

}

HDU 2066 一 個人的旅行 最短路)

乙個人的旅行 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2066 description input 輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條...

最短路 HDU2066 乙個人的旅行

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

hdu2066 乙個人的旅行(最短路)

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