![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LCA
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
luogu1967 货车运输
题目描述A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。输入输出格式输入格式: 输入文件名为 truck.in。输入文件第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和 m 条道路。 接下来 m 行每行 3 个整数 x、原创 2017-07-14 08:28:27 · 277 阅读 · 0 评论 -
bzoj3732 Network(Kruskal重构树)
Description给你N个点的无向图 (1 <= N <= 15,000),记为:1…N。 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_j ( 1 < = d_j < = 1,000,000,000).现在有 K个询问 (1 < = K < = 20,000)。 每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少?Inpu原创 2017-08-26 15:12:29 · 2357 阅读 · 0 评论 -
LCA
LCA:树上最近公共祖先目前掌握的算法有两种(都是在线做法) 先说简单的:倍增这里写代码片#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>using namespace std;struct node{ int u,v,next;};node way[10原创 2017-06-21 21:17:53 · 365 阅读 · 0 评论 -
UVa 11354 - Bond(最小生成树+倍增lca)
题目链接简介: 最小瓶颈路,点对之间的路径中的最大边权分析: 肯定是先求出最小生成树(一看到瓶颈路,就要往这方面想,当然也不是绝对的)因为需要回答大量的查询,我们就需要把信息组织成某种易于查询的结构一开始我认为可以直接像例一这样n^2处理,O(1)回答 但是n的范围不允许我这样干, 所以我们还是用最古老的方法:倍增那么这道题就和货车运输有异曲同工之妙了tip代码量有点大//这里写代码片#i原创 2017-10-11 18:35:35 · 330 阅读 · 0 评论 -
11.5 T1.attack(拓扑+lca)
分析: 如果整个图是一棵树,那么针对每个询问 必经路径就是k个点的lca到根节点的路径 实际上扩展成一个普通的图也是这样听男生们在讨论的时候,说这道题和灾难那道题”一样“ 我仔细一想,确实哎, 我们现在手上的图是一个DAG 首先我们把ta的拓扑序计算出来 之后构造一个“拓扑树”: 假设当前点是x,x的祖先一定都在拓扑树中了我们要找到与原图中直接指向x的所有点在拓扑树中的lca,把x挂原创 2017-11-05 18:54:09 · 893 阅读 · 0 评论 -
bzoj4539 [Hnoi2016]树(缩点+主席树+LCA【待完善)
题目链接分析: 从学姐blog中扒出来的一道神题小范围数据的暴力非常的显然,然而MLE和TLE不是我们的重点一开始就想到把需要插入的子树直接视为一个点 加上原树,我们得到的就是一个有m+1个结点的重构树最初的模板树缩成一点,作为大树的根结点 我们考虑插入一个子树 子树加入时会重新标号,但是大小顺序是不变的 所以一个结点代表的子树的结点编号一定是一段连续的区间 我们可以通...原创 2018-04-08 12:29:35 · 301 阅读 · 0 评论 -
bzoj4568 [Scoi2016]幸运数字(LCA+线性基)
题目链接分析: 学长说这叫:树上线性基有多重做法 (1)树链剖分+线性基合并(2)LCA+倍增+线性基合并(3)点分治+线性基合并后两个是lognlognlogn级的,第一种是log2nlog2nlog^2n级的就代码复杂度来说,当然是选择第二种方法啦每个结点维护向上跳2i2i2^i步经过的数字的线性基 线性基的合并直接暴力即可 最后的统计答案就是普通的线性基求异或和最...原创 2018-02-27 20:18:54 · 251 阅读 · 0 评论