![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最近公共祖先(LCA)
文章平均质量分 71
给我一瓶AC钙
是一颗萌菜没错了
展开
-
(Luogu) P1967 货车运输(kruscal + lca)
传送门题目大意:城市与城市之间有道路相连,并且道路有着限重,q次查询问,从x到y车的最大载重量,不能到达就输出-1.解题思路:这道题有很多种解法,但这道题放在了倍增里,自然而然想着用倍增的方法去做,对于才初步了解这个算法的我来说,还是有点困难的。其实如果城市与城市之间有多条路径可以抵达,那只要保留那条载重最大的那条路径就行了。所以我们自然而然可以在它给的图上跑kruscal,跑出一颗最大生...原创 2018-12-20 21:40:50 · 116 阅读 · 0 评论 -
倍增 || ST-RMQ 求LCA
视频讲解戳这里(bj聚聚讲的非常好,一听就懂)由luogu一道模板题讲起传送门(都9102年,这题还卡输入输出,要吸氧才能过)LCA:求两个点的最近公共祖先倍增求LCA:有很多博客图文并茂讲的非常清楚,倍增LCA的主要思想就是,先将u,v(保证u的深度更深)两点调整到同一水平线情况一:u==v,那就说明最近公共祖先是u,这种情况说明u,v在同一边,祖先自然是深度较浅的那一个...原创 2019-01-24 14:55:21 · 240 阅读 · 2 评论 -
(CodeForces) E. Xenia and Tree (lca+分块+最短路)
传送门题意:给定一棵树,一开始只有1为红,其他点为蓝。两种操作:1,把一个点染成红点。2,询问一个点到最近红点的距离。解:数据量只有1e5,n根号n*log应该是可以的,主要是这个染色后,我们不能每一次染色后都去跑一次最短路(bfs就可以了),所以我们当修改数目达到根号n时再去进行一次最短路,查询是如果有点是未更新状态,我们可以通过lca来求得两点的距离,这样就可以保证复杂度是可行的。...原创 2019-09-19 14:29:20 · 331 阅读 · 0 评论