這兩天做了六道最短路徑的問題,分別用了dijkstra演算法、spfa演算法和floyd演算法,甚至還有一道題用並查集做的也a了,感覺對短路徑已經學得很不錯了。
poj1860,poj3259,poj1062,poj2253,poj1125,poj2240
poj2253,dijkstra和並查集都可以。
dijkstra演算法改變一下dis陣列存的內容,計算方式也要相應的變一下。
dijkstra演算法ac**:
#include #include #include #include #include #include #include using namespace std;
const double inf = 100000000;
const int maxn = 210;
double dis[maxn],g[maxn][maxn],n;
bool v[maxn];
int m,n;
vector> a;
double dist(paira,pairb)
void dijkstra()
void slove()
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
sort(g,g+num);
disjointset di(n+1);
for (int i=0;i
POJ 1511 最短路徑
include include include using namespace std const int maxn 1000005 struct node node mat1 maxn mat2 maxn queueq node pool maxn 2 2 int counts long long...
最短路徑 POJ 2387
題目點這裡 給乙個無向圖,首先輸入兩個整數t和n,t 表示邊的數目,n表示頂點數目。接下來輸入 t 組資料,格式為u v w,求出第乙個頂點到最後乙個定點的最短路徑。題目要求的是單源最短路,並且權值沒有負數,應用drikstra演算法即可求得。需要乙個陣列dist用來儲存第乙個頂點f到所有頂點當前的...
Codeup最短路徑 最短路徑
n個城市,標號從0到n 1,m條道路,第k條道路 k從0開始 的長度為2 k,求編號為0的城市到其他城市的最短距離。第一行兩個正整數n 2 n 100 m m 500 表示有n個城市,m條道路,接下來m行兩個整數,表示相連的兩個城市的編號。n 1行,表示0號城市到其他城市的最短路,如果無法到達,輸出...