最短路的幾種常用演算法

2021-05-26 23:33:40 字數 1156 閱讀 4005

hdu1874 暢通工程續

陳年水題,老少皆宜,最短路的入門作業

但是換個刷法,會更有意思

最短路的 floyd 演算法:

#include#include#define find_min(a,b) a最短路dijkstra演算法的 鄰接陣實現:

#include#include#define find_min(a,b) adist[cur])

dist[i]=map[i][cur]+dist[cur];

if(dist[i]

#include#includeconst int max = 0xfffffff;

const int n =210;

struct edge

edge[1001];

int n,m,e_num,head[n],dist[n],vis[n];

void addedge(int a,int b,int c)

void getmap()

int min=max;

for(i=0;i最短路spfa演算法 :

#include#include#include#includeusing namespace std;

const int max = 0xffffff;

const int n = 201;

struct edge

edge[1001];

int n,m,e_num,vis[n],head[n],dist[n];

void addedge(int a,int b,int c)

void getmap()

}} }

printf("%d\n",dist[ep]

#include#include#include#includeusing namespace std;

const int n = 1001;

const int max = 0xfffffff;

struct node

};struct edge

edge[4*n];

int n,m,e_num,vis[n],dist[n],head[n];

void addedge(int a,int b,int c)

void getmap()

} }printf("%d\n",dist[ep]

最短路的幾種演算法

單源無負權最短路 dijkstra 多源無負權最短路 floyd 單源負權最短路 bellman ford,spfa 以hdu 2544為例 dijkstra include using namespace std typedef pair int,int par const int maxv 1e...

hdu2544 最短路 幾種最短路演算法實現

floyd warshall演算法 時間複雜度o v 3 一般不用 演算法模板 include include include using namespace std const int max v 110 const int inf 0x3f3f3f3f int d max v max v d u...

最短路,幾種做法

輸入 本題目包含多組資料,請處理到檔案結束。每組資料第一行包含兩個正整數n和m 0輸出 對於每組資料,請在一行裡輸出最短需要行走的距離。如果不存在從s到t的路線,就輸出 1 用於解決最短路徑問題的演算法被稱做 最短路徑演算法 有時被簡稱作 路徑演算法 最常用的路徑演算法有四種 1.dijkstra ...