![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lca
文章平均质量分 63
空灰冰魂
=NULL
展开
-
【NOIP2013】【ygylca】 货车运输带权并查集
NOIP2013货车运输,新的lca拓展?!原创 2014-08-21 18:28:15 · 2101 阅读 · 0 评论 -
【BZOJ3910】火车 LCA+并查集
题解:首先找两点之间路径可以用倍增LCA。 然后标记哪个点走过可以用并查集,均摊下来最后是线性的。代码:#include #include #include #include #define N 501000#define LOGN 20using namespace std;struct Eli{ int v,next;}e[N1];int head原创 2015-03-31 16:08:26 · 1502 阅读 · 0 评论 -
【BZOJ2815】【ZJOI2012】灾难 阿米巴和小强题 动态倍增LCA 灾难树
题解:我们构建一颗灾难树,使得一个节点的任意一个祖先灭绝,则其会灭绝。 则可以按照拓扑序扫每个节点,然后加入到灾难树中时只需要把它的父亲赋成它所有食物的LCA就好了。 我们可以动态处理每个节点的倍增lca数组fi,jf_{i,j}表示i的第(1j)(1高祖先。代码:#include #include #include #include #include #defi原创 2015-03-06 20:24:49 · 1849 阅读 · 0 评论 -
【BZOJ3238】【Ahoi2013】差异 后缀自动机
首先 秦神QY Orz 题解:这道题后缀数组过于鬼畜(wo’tai’ruo’bu’gan’xie)所以写了简单好写易于理解不用分治不用RMQ的SAM大叔。题解:首先其实我们需要一个后缀树,然后两个后缀的lcp就是它们lca的len。后缀树可以通过反序后缀自动机得到,这个很水。然后len的性质就是后缀自动机的那个len(我写的‘deep’)。后缀树上DP就水了原创 2015-01-14 23:35:46 · 2198 阅读 · 0 评论 -
【BZOJ1832】【AHOI2008】聚会 倍增lca
这道题写不了tarjanlca。50W的询问,也就是150W次lca查询,每次加三条边,内存妥妥要爆。只能退求logn的倍增lca了。sad story. 还好一遍AC。题解:就是发现每次询问三个点之间有唯一的路径集,那么我们选其中两个取lca,然后另一个点自己走到这个lca,就可以贪心取得答案。代码:#include #include #inc原创 2015-01-11 09:07:00 · 2190 阅读 · 0 评论 -
【BZOJ1787】【Ahoi2008】Meet 紧急集合 LCA、双倍经验
233……【BZOJ1832】【AHOI2008】聚会 倍增lca就是这道题。输入输出都没有改。http://blog.csdn.net/vmurder/article/details/42607739题解也在以前那篇博客里面。代码:(直接复制的那篇博客)#include #include #include #include #define N原创 2015-01-28 19:09:28 · 1555 阅读 · 0 评论 -
【BZOJ2144】跳跳棋 模拟gcd以及倍增LCA
题意:首先一个状态至多有3种跳的方法的~不能隔着格子跳的~题解:既然有三种方法,那么显然有两种是向外跳,一种是收敛着跳(往里)然后这个就可以类比成父亲状态和子状态,里兮为父,外则即子。(诶窝里斗的感觉,,这文言文有点喜感)然后我们就发现步数是开始状态和结束状态都往里走,走到lca的步数。或者说开始状态走到lca,然后再由lca走到结束状态。。原创 2015-01-28 18:56:58 · 1720 阅读 · 1 评论 -
【BZOJ3732】Network,NOIP2013货车运输,ygylca
树剖不乐意写?快来看一看思路清晰代码好写的ygylca吧!原创 2014-10-03 23:23:30 · 1999 阅读 · 0 评论 -
【原创】【算法】【ygylca】狭义带权并查集求lca两点之间路径最大路问题。
新的算法?原创 2014-08-21 18:27:30 · 2628 阅读 · 2 评论 -
【BZOJ2588】【Spoj 10628.】 Count on a tree 可持久化线段树+lca
题解:对于每个树上节点存一个版本的可持久化线段树,为它到根节点上所有权值的权值线段树(需要离散化)。 然后对于每次询问,这条链(a,b)的线段树就是:线段树a+线段树b−线段树lca−线段树falca线段树_a + 线段树_b - 线段树_{lca} - 线段树_{fa_{lca}} 然后线段树上求第k小啦。代码:#include #include #include原创 2015-04-14 22:05:17 · 2358 阅读 · 0 评论