蓝书图论刷题计划
文章平均质量分 53
作为队里的图论手,必须扛起来捏!
中午吃了泡面
这个作者很懒,什么都没留下…
展开
-
观光之旅
我们知道在 floyd 算法的过程中,在最外层的 k 循环开始时,dis[i][j] 保存着经过编号不超过 k-1 的节点的从 i 节点到 j 节点的最短路长度,所以 min{ dis[i][j] + a[j][k] + a[k][i] } 是满足。,S 一定是第一个被从堆中取出的节点,我们扫描 S 的所有出边,拓展、更新完后令 dis[S]=INF,然后继续跑 dijkstra,当 S 第二次被取出时,dis[S] 就是经过点 S 的最小环长度。[1,n],都如此枚举就能得到这张无向图上的最小环。...原创 2022-08-30 10:43:32 · 166 阅读 · 0 评论 -
排序
每当添加一对关系,就更新一下 dis 值,在没有出现矛盾的情况下,我们也没有必要跑完整的 floyd,只需要用这条边的两个端点分别作为中转点来更新其他点就行了,因为其他边(其他组关系)没变,用其他点作为中转点不会有任何更新。而对于像 dis[i][j]=dis[j][i]=1 或者 dis[i][i]=1 这种情况就属于矛盾。S,只要有a⊙b且b⊙c,那么必然有a⊙c,那么 ⊙ 具有传递性。给定 n 个变量和 m 个不等式(不等式满足传递性),从前往后确定每对变量的关系,看是否有出现矛盾的情况。...原创 2022-08-30 10:15:33 · 224 阅读 · 0 评论 -
道路与航线
题目明显是一道单源最短路径问题,但是图上有负权边,所以不能单纯用 dijkstra 算法,此外也不能跑 spfa,因为交了一发,被毒瘤数据卡了(菊花图?但是我们熟读题目,可以发现图中双向边都是正的,而单向边才有可能是负的,同时题目保证单向边不构成环,因此我们换一个思路来解题。首先,我们先将双向边添加到图里,那么此时图上就构建出多个连通块;下一步,将各个连通块看作是一个点,并添加单向边到图里,那么最后就会得到一张。接着,因为有向无环图的性质,无论边权正负,我们都可以利用。求出连通块里的最短路信息。...原创 2022-08-29 10:45:43 · 118 阅读 · 0 评论 -
最优贸易
当前 D[i] 最小的点是 5,那么有可能存在边 5-> 6, 6-> 7, 7-> 5,令 D[5] = 10,则有可能存在节点 6 的权值是 11, 但节点 7 的权值是3,那么 D[5] 的值应该被更新成 3,而不是 10,因此当前最小值也不一定是最终最小值,所以基于贪心的 dijkstra 不符合题目的要求。最后,枚举每个节点 x,用 F[x] - D[x] 更新答案即可。在一张节点带有权值的图上找到一条从 1 到 N 的路径,使路径上能选出 p,q 两点(先经过 p 再经过 q ),并且“原创 2022-08-22 09:47:13 · 172 阅读 · 0 评论 -
通信线路
把问题转化为是否存在一种合法的升级方法,使花费不超过 mid。然后把图上边权大于 mid 的边的长度看作 1,小于则看作 0,最后用。在一张无向图上找出一条从 1 到 N 的路径,使路径上第 K+1 大的边权尽可能小。求从 1 到 N 的最短路是否小于等于 K 即可。答案显然有单调性,我们可以。原创 2022-08-21 18:58:05 · 116 阅读 · 0 评论