最短路1
求個全源最短路。
看資料範圍\(1\le n\le100\),直接floyd秒掉就行。
最短路2
先判負環,用Bellman-Ford,當然建議用佇列最佳化版的(國內一般叫spfa)。
雖然說spfa複雜度不穩定,但也一定比樸素版要快一點的。
第二步還是求全源最短路,但是這個題的資料範圍到了\(1\le n\le3\times10^3\),很明顯floyd會爆掉。
所以考慮對每一個點跑dijkstra。
想詳細學習的話可以去查一下johnson全源最短路
最短路3
這個題我用bfs做的,說一下大概思路
從1點出發,遍歷所有出邊到達的點
如果一個點沒有訪問過,加入佇列,d[y] = d[x] + 1,cnt[y] = cnt[x]
如果訪問過了,判斷這個條件d[y] == d[x] + 1,如果成立就cnt[y] += cnt[x],否則跳過