
LCA
文章平均质量分 71
树形dp,树上倍增,维护
阐上
hh厨
展开
-
树上线段树合并(模板题)
树上线段树合并,数据结构启发式合并,最近公共祖先,树上差分原创 2022-05-05 11:28:47 · 453 阅读 · 0 评论 -
牛客:缆车(LCA)
牛客小白月赛题意:给定一颗特别的 有向 树,从 1号根节点 往下能走到所有点,看图即可。树上画出 m 个景点 和 一个 中转点 K,给这棵树加一条边,使得 K 去往 m 个景点的距离和最小,求这个最小距离。思路:一开始想简单了,直接当成无向树给 LCA 加边,显然大wa特wa。事实上应该分情况讨论:首先这条边的一端肯定是 K 点。这 m + 1 个点的最近公共祖先(LCA)为 K。显然这种情况,K 已经能往下走到所有点了,所以只需要加一条能减距离最大的边。这个贡献的计算为原创 2022-04-13 12:46:56 · 498 阅读 · 0 评论 -
2021 ICPC区域赛(上海)H-Life is a Game(kruskal重构树、LCA)(Hack数据 + 真正解)
2021 ICPC区域赛(上海)H-Life is a Game(kruskal重构树、LCA)(Hack数据 + 真正解)原创 2022-02-15 13:38:00 · 2616 阅读 · 2 评论 -
经典LCA例题:P4180 [BJWC2010] 严格次小生成树
Acwing:严格次小生成树(求两点间路径上最大边的权值)(模板)洛谷:严格次小生成树求两点间路径上最大边的权值,就不能通过前缀和了,会丢失信息。每个结点存到其他结点的路径最大边权又占用过多空间 O(n2)O(n^2)O(n2)因此学习下倍增优化存点的思想,将这空间二进制压缩成 O(nlog2n)O(nlog_2n)O(nlog2n)维护一个 d[i][j]d[i][j]d[i][j] ,维护从 i 点往上跳 2j2^j2j 步这条路径上的最大边权如果是求 严格次小树严格次小树原创 2022-01-13 13:34:46 · 245 阅读 · 0 评论 -
洛谷:P1967 [NOIP2013 提高组] 货车运输(LCA —— 求两点间路径上最小边的权值)
洛谷:货车运输理解了求严格次小生成树那道题的做法,此题就很简单了,不过需要动脑筋贪心思维一下#include<bits/stdc++.h>#include<unordered_set>#include<unordered_map>#define mem(a,b) memset(a,b,sizeof a)#define cinios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))#define sca原创 2022-01-13 13:24:30 · 293 阅读 · 0 评论 -
洛谷:P2245 星际导航(最小生成树 “重构” + LCA)
洛谷:星际迷航题目要求 任意两点间不同路径的最大边权的最小值如果是单求几次的话,时间上跑几个最短路还是勉勉强强的但询问次数是10510^5105…基本扼杀了一切最短路算法所以我们另辟蹊径,可以观察到,如果对这样的图建一个 最小生成树 ,每次连接两个集合的边肯定是尽可能小的意味着 两集合的任意点 到 相对集合中的任意点 的最大边权最小值 == 此时连接两个集合的边但点数也是10510^5105…你不可以直接开个 dist[N][N]dist[N][N]dist[N][N] 数组记录任意两点间原创 2022-01-13 13:12:58 · 433 阅读 · 0 评论