kruskal重构树
良月澪二
EU gosto de música
展开
-
BZOJ 3732: Network
题目链接:传送门 kruskal重构树 板子到不想写… 那么这是个什么东西呢? 构造很简单 我们在构造生成树的时候 每遇到两个不在同一集合的节点 就新建一个节点并将这个节点设为那两个节点的父亲 将新建节点的权值设为原来两个节点之间的边权 这样就将边权转化成了点权 由于我们的边权是有序的 所以重构出的树的根节点的权值一定是最大的或者是最小的 可以举一个例子自己构造试一下 比如: 1 3 2 3 4 ...原创 2019-07-29 09:33:10 · 221 阅读 · 2 评论 -
Luogu P4768 [NOI2018]归程
题目链接:传送门 kruskal重构树 具体什么原理可以来这里瞅一下 根据海拔高度建出kruskal重构树 海拔高的在前面 这样重构树的根节点的海拔最小 查询的时候只要某个子树的根节点能到 那子树也一定能到 且走到子树的点都没有花费 lca的点权的意义是路上最短边的最大值 题目中我们可以通过汽车走一段没有花费的路程 就是在这里处理的 还需要求一个最小的花费 这个花费是这个子树中所有节点的最小花费 ...原创 2019-07-30 21:03:15 · 162 阅读 · 0 评论 -
Luogu P2245 星际导航
题目链接:传送门 kruskal重构树的板子题 和货车运输一样滴 会的可以写这个 我直接改的货车运输当时的倍增lca的代码 思路就是建出最小生成树 因为显然一些边权很大的边是不可能走的 然后倍增维护路径上边权的极值 #include <iostream> #include <cstdio> #include <cstring> #include <cstd...原创 2019-07-30 21:10:38 · 243 阅读 · 0 评论