2020暑期訓練6

2021-10-08 15:19:41 字數 2360 閱讀 3133

shortest path faster algorithm,即佇列優化的bellman-ford演算法,最壞情況下時間複雜度 o(n

m)

o(nm)

o(nm

),好像只能在負權圖里用,不然會被卡死。

例題:p3371 【模板】單源最短路徑(弱化版)

就是bfs的原理

#include

using

namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

typedef pair<

int,

int> pii;

typedef vector<

int> vi;

const

int inf =

0x7fffffff

;const

int maxn =

1e5+9;

inline

intread()

while

(isdigit

(ch)

)return f * data;

}int cnt_e;

const

int maxm =

5e5+9;

struct edge

e[maxm]

;int dis[maxn]

, vis[maxn]

, head[maxm]

;void

add(

int from,

int to,

int dis)

int n, m, s;

void

spfa()

q.push

(s);

dis[s]=0

, vis[s]=1

;while

(!q.

empty()

)}}}

}int

main()

spfa()

;for

(int i =

1; i <= n;

++i)

cout << dis[i]

<<

' ';

//fclose(stdin);

//fclose(stdout);

return0;

}

鏈式前向星存的圖,原理就是頭插法的靜態鍊錶。

spfa判負環,如果存在負環就會一直鬆弛下去,所以當到某個點的最短路經過了不少於 n

nn 個點,那說明一定出現了負環。

例題:p3385 【模板】負環

#include

using

namespace std;

typedef

long

long ll;

typedef

unsigned

long

long ull;

typedef pair<

int,

int> pii;

typedef vector<

int> vi;

const

int inf =

0x3f3f3f3f

;inline

intread()

while

(isdigit

(ch)

)return f * data;

}const

int maxn =

2e3+10;

const

int maxm =

6e3+10;

int n, m, head[maxn]

, tot, dis[maxn]

, vis[maxn]

, cnt[maxn]

;struct edge

e[maxm]

;queue<

int> q;

void

reset()

void

add(

int u,

int v,

int w)

bool

spfa()

}}}return

false;}

intmain()

puts

(spfa()

?"yes"

:"no");

}//fclose(stdin);

//fclose(stdout);

return0;

}

圖論要學的新知識實在是太多了

2020暑期實習 總結

以下大概按投遞順序排列 阿里巴巴,一面掛 微眾銀行,未面試 網易網際網路,未面試 網易互娛,平台開發offer thoughtworks,一面掛 華為,二面掛 浪潮集團,軟體開發offer 小公尺,未筆試,未面試 oppo,未筆試,未面試 intel,未筆試,未面試 郵政儲蓄銀行軟體中心,更新 5月...

ACM暑期訓練總結

為期六周的暑期集訓已經結束了,但這乙個暑假確實是上學以來最有意義的暑假,它帶給我的不僅是知識上的提高,更多的是學習方法上的提高,對程式設計的理解與興趣以及對自我更加清醒的認識。以前寫c 總結報告的時候,貌似或多或少都有一點應付的意思。基本上都是知識點加遇到的困難加幾段莫名其妙的雞湯 當然,只喝了幾天...

2017暑期訓練小結

新一次的noip即將在11月11號舉行,這一次的noip對我們也是十分重要的,畢竟是初中階段的最後一次noip了,也應該給自己的初中oi乙個完美的結束。這一次的noip我們這個暑假要努力的練習,但是也應該不止練習。首先,我們應該好好地分專題做題。我打算這一暑假及開學後到noip之前的這一階段,按這樣...