随笔分类 - { 树算法 { LCA } }
摘要:题目大概说给一棵树,每次询问三个点,问要把三个点连在一起的最少边权和是多少。 分几种情况。。三个点LCA都相同,三个点有两对的LCA是某一点,三个点有两对的LCA各不相同。。。%……¥…… 画画图可以发现。。虽然好像不太严谨。。连接(a,b,c)三个点的最短边权和=(dist(a,b)+dist(b
阅读全文
摘要:题目大概说一棵边有方向的树,q个询问,每次询问结点u是否能走到v。 倍增LCA搞即可: 除了par[k][u]表示u结点往上走2k步到达的结点, 再加上upp[k][u]表示u结点往上走2k步经过边的状态:-1表示边都是向下,1表示都是向上,0混合。 这样u、v都往LCA上走就能知道u是否能走到v了
阅读全文
摘要:题目大概是给一张图,动态加边动态求割边数。 本想着求出边双连通分量后缩点,然后构成的树用树链剖分+线段树去维护路径上的边数和。。好像好难写。。 看了别人的解法,这题有更简单的算法: 在任意两点添边,那么两点路径上的边就不是割边了,于是从两点往上走到其LCA,一边缩点一边统计消失的割边数。 这样的时间
阅读全文