最短路模板

2021-08-08 05:24:48 字數 1670 閱讀 9697

週六週日tyvj上有模擬賽

順便逃了周練【霧

複習了一下圖論裡的基本演算法

彷彿第一次寫最短路的手生

**寫的太少了…orz…

dijkstra:

#include#define maxn 10001

#define maxm 300001

using namespace std;

template void read(t &x)

int to[maxm],wei[maxm],nxt[maxm];

int head[maxn],dis[maxn],pre[maxn];

bool vis[maxn];

int n,m;

int total;

void add(int u,int v,int w)

void dijkstra(int x)

int to[maxm],nxt[maxm],wei[maxm],total;

int head[maxn],dis[maxn],q[maxn];

bool vis[maxn];

int n,m;

void add(int u,int v,int w)

void spfa(int x)

}} }

}int main()

spfa(1);

for(int i=1;i<=n;++i) cout<

floyd:

for(int k=1;k<=n;++k)

for(int i=1;i<=n;++i)

for(int j=1;j<=n;++j)

dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);

順手在luogu上交了dikstra和板子和堆優化 gg

90分莫名其妙wa了第三個點

交了spfa wa了第三個點

一開始有向圖當成了無向圖【霧

最短路模板

1.dijkstra演算法 演算法思想 從某乙個點開始,找與它距離最近的乙個點,然後更新所有點到這條路徑的距離,然後再次選取乙個距離上乙個點路徑最短的點,將其加入路徑,以此進行,直到求出起點到所有點的最短距離.注意 權值不能為負,如圖 1到3的距離應該是零,但這裡結果為一 1 鄰接矩陣 複雜度 o ...

最短路模板

include include include include include include define inf 0x3f3f3f3f using namespace std const int maxn 105 int dis maxn pre maxn struct edge 邊 edge ...

最短路模板

最短路模板 思路 開乙個陣列dis i 一開始把陣列全初始化為極大值,表示離源點的距離為無窮大 表示 i 點到源點的最短距離。一開始把與源點直接相鄰的點和源點的距離存入dis i 陣列,再在dis陣列中找到乙個最小值,並標記。顯然該標記點離源點是最近的。而其他點經過該標記點到源點的距離可能比直接原點...