摘要: 适用于任何权的图,负权也可以做。假如从s出发的子图中存在负环,则算法会报告发现负环,否则会正确求出最短路。 松弛操作 一种基于松弛(relax)操作的最短路算法。 第i轮松弛(每条边使用一次)后,从节点s出发的经过<=i条边的到达每个节点的最短路已经找到。假如存在最短路,则最多经过n-1条边。所以假 阅读全文
posted @ 2021-02-08 11:03 purinliang 阅读(178) 评论(0) 推荐(0)
摘要: 其实格子图很可能会和棋盘格染色有关。 namespace BFS { const int MAXN = 1e3 + 10; const int MAXM = 1e3 + 10; const int di[] = {0, 0, -1, 1, -1, -1, 1, 1}; const int dj[] 阅读全文
posted @ 2021-02-08 09:33 purinliang 阅读(345) 评论(0) 推荐(0)
摘要: 当边权为某个定值w时,可以直接把最短路改为经过w边几次,那么可以用bfs。 namespace BFS { const int MAXN = 3e5 + 10; int n; vector<int> G[MAXN]; int dis[MAXN]; queue<int> Q; void bfs(int 阅读全文
posted @ 2021-02-08 09:24 purinliang 阅读(60) 评论(0) 推荐(0)