随笔分类 - 最短路
摘要:首先建出虚树 然后就相当于多源最短路,权值为第一关键字轮数和第二关键字下标 然后dijkstra即可 建虚树过程是在维护右链,注意要把所有用到的点都初始化一遍。
阅读全文
摘要:分别求出以 $s_1$、$t_1$、$s_2$、$t_2$ 为起点的最短路 然后 $O(n^2)$ 枚举公共路径的两个端点 根据四个最短路的关系判断是否都在最短路上
阅读全文
摘要:先跑一次dijkstra得到每个点到 $1$ 的最短路 然后按海拔跑最大生成树得到kruskal重构树 那么一个点在能开车到的地方就是对应海拔高于 $p$ 的最高的点的子树 然后取子树中dis的min即可
阅读全文
摘要:首先正着搜是错的。。因为搜索的顺序会影响结果。。 那么就把所有点按法术攻击的大小都加入小根堆,每次取出最小的,那么解决它就只需要用法术攻击了。因为肯定存在解决它的儿子用法术攻击的情况,而且需要的花费比解决它的法术攻击还大,那必然用一次法术攻击解决它,不过存在当它没有儿子时,就把法术攻击和普通攻击取个
阅读全文
摘要:倍增floyd 因为答案具有单调性,若所有点数为 $n$ 的环没有出现负环,那么 $n 1$ 的环也不会出现负环,那么我们就找出点数最大的非负环,只要再加一个点就能组成负环了。 预处理出 $f[k][i][j]$ 表示 $i \to j$ 恰好走了 $2^k$ 条边的最短路,那么 $f[k][i][
阅读全文
摘要:做法一:直接dinic跑 做法二:平面图最小割转对偶图最短路,左下外区域为起点,右上外区域为终点,一条边连接两个区域,把区域看成点,就变成了最短路问题。 #include <bits/stdc++.h> namespace IO { char buf[1 << 21], buf2[1 << 21],
阅读全文
摘要:$cost[i][j]$ 表示第 $i$ 天到第 $j$ 天都走同一条路线时每天的最小花费,即为 $1$ 到 $m$ 的最短路。dijkstra即可。然后 $dp[i]$ 表示到第 $i$ 天的最小花费$dp[i] = min(dp[j] + cost[j + 1][i] * (i - j) + k
阅读全文
摘要:K短路板子,在两个地方WA都是开小了空间... 求出 $T$ 到其他所有点的最短路树,记 $d[i]$ 为 $i$ 到 $T$ 的最短路。给每一个点分配一个前趋,如果多个相同则选其中一个。(注意有重边时要记录边而不是记录前趋的点!!!) 走 $S$ 到 $T$ 上的树边即为最短路,走一条非树边 $(
阅读全文
摘要:Description Farmer John正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇 (1 <= T <= 25,000),编号为1T。这些城镇之间通过R条道路 (1 <= R <= 50,000,编号为1到R) 和P条航线 (1 <= P <= 50,000,编号为
阅读全文

浙公网安备 33010602011771号