随笔分类 - 图论 - Floyd
摘要:题目大意:给定一个图的最短路,求原图中至少存在多少条边。 题解:利用 Floyd 的性质,枚举边 d[i][j],若存在一个不是两端点的点,使得 d[i][j]=d[i][k]+d[k][j] 成立,则证明 (i,j) 这条边可以没有。 代码如下 cpp include using namespac
阅读全文
摘要:题目大意:给定 N 个节点,M 条边的无向图,边有边权,点有点权,现给出 Q 个询问,每个询问查询两个节点之间的最短路径,这里最短路径的定义是两个节点之间的最短路径与这条路径中经过的节点点权的最大值之和。 题解:多源最短路问题应该用 floyd 算法来处理,由于最短路径涉及到路径中最大的点权,因此如
阅读全文
摘要:题目大意:给定一个 N 个顶点的无向图,图中有若干联通块,现定义联通块的直径为该联通块中距离最远的两个点的距离,定义无向图的直径为这个图中所有联通块直径的最大值。现在在图上加一条边,使得两个本不连通的联通块得以联通,求加入一条边之后整张图直径的最大值最小是多少。 题解:首先在不加入边的情况下,图的直
阅读全文
摘要:题目大意:给定一个 N 个顶点,M 条边的无向图,每个顶点有一个时间戳,且时间戳大小按照顶点下标大小依次递增,在给定时间 t 时,时间戳严格大于 t 的顶点不能被访问,现在有 Q 次询问,每次询问在给定时间下,任意两个点的最短路是多少,若有点不能被访问,则输出 1。 题解:因为 N using na
阅读全文
摘要:题目大意:给定一个 N 个顶点的邻接矩阵、起点顶点、终点顶点,求至少经过 K 条边(边可以重复)从起点到终点的最短路长度,若不能到达,输出 1。 题解:至少经过 K 条边和恰好经过 K 条边的初始条件不同,因为至少经过 1 条边的任意两点最短路就是通过 Floyd 算法算出的矩阵,而恰好经过 K 条
阅读全文
摘要:题目大意:给定一个 N 个顶点,M 条边的无向图,求从起点到终点恰好经过 K 个点的最短路。 题解:设 $d[1][i][j]$ 表示恰好经过一条边 i,j 两点的最短路,那么有 $d[r+m][i][j]=min\{d[r][i][k]+d[m][k][j] \}$,等价于矩阵乘法。 这道题 K
阅读全文
摘要:题目大意:给定一个 N 个顶点的无向图,边有边权,如果存在,求出该无向图的最小环,即:边权和最小的环,并输出路径。 题解:由于无向图,且节点数较少,考虑 Floyd 算法,在最外层刚开始遍历到第 K 号节点时,$d[i][j]$ 中记录着经过前 k 1 个点,从 i 到 j 的最短距离。因此,可以依
阅读全文

浙公网安备 33010602011771号