洛谷 P4779 模板 單源最短路徑(標準版)

2022-06-19 18:45:09 字數 1052 閱讀 7740

給你乙個有向圖,求出從這個點到其他所有點的最短路徑(邊權不為負)

一看到最短路,就想到了spfa和dijkstra演算法,於是隨隨便便就寫了出來。

在乙個有向圖中,我們從起點出發,找出和它的距離最小(也就是dis)的點,再取出所有與這個點相連的邊,做一遍鬆弛。

如果從點u到點v的路徑中,有乙個中轉點k使得k.cost+dis[v}這樣子dijkstra的時間複雜度為o(n^2)

#include #include #include using namespace std;

struct edge

;int n,m,st,dis[100001],vis[100001];

vector s[100001];

vector ::iterator it;

int main()

dis[st]=0;

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

;struct cmp

};int n,m,st,vis[100001];

vector s[100001];

vector ::iterator it;

priority_queue dis;

int main()

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

vis[i]=2147483647;

edge a;

int b;

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

vis[st]=0;

dis.push((cmp));

while (!dis.empty())

{ cmp k=dis.top();

dis.pop();

if (vis[k.u]!=k.d)

continue;

for (it=s[k.u].begin();it!=s[k.u].end();it++)

if (vis[k.u]+(*it).cost蒟蒻的第一篇題解,碼風不好,講的也不清楚,希望大家多多包涵。

洛谷P4779 單源最短路徑與Dijkstra演算法

蒟蒻出品,歡迎指正 dijkstra演算法 由於字母太多,以下統一用dij代替 逃 dij演算法,使用廣度優先搜尋與貪心演算法解決單源圖的最短路徑問題,不適用於有負權邊的圖。時間複雜度 o mlogn n為頂點數,m為邊數。演算法思路 對於所需求解的圖,首先假設任意兩頂點之間距離為正無窮。然後開始加...

洛谷 P4779 模板 單源最短路徑(標準版)

求單源最短路徑。可以記住的模板有 堆優化的 dijkstra,bellman ford,spfa。堆優化的 dijkstra 演算法複雜度為 o e t dk v tem o e cdot t v cdot t o e tdk v tem 其中 e e e 是邊集大小,v v v 是點集大小,t d...

洛谷 P4779 模板 單源最短路徑(標準版)

洛谷 p4779 模板 單源最短路徑 標準版 2018 年 7 月 19 日,某位同學在 noi day 1 t1 歸程 一題裡非常熟練地使用了乙個廣為人知的演算法求最短路。然後呢?100 60 ag cu 最終,他因此沒能與理想的大學達成契約。小 f 衷心祝願大家不再重蹈覆轍。給定乙個 n 個點,...