Link-Cut-Tree
文章平均质量分 50
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 2049 洞穴勘测 Link-Cut-Tree(LCT)
警告 本篇文章作者已神志不清原创 2014-08-26 21:02:05 · 1897 阅读 · 0 评论 -
BZOJ 1453 Wc2005 Dface双面棋盘 Link-Cut-Tree
题目大意:给定一张网格图,每个点有黑色和白色,同色相邻的点之间连边,每次反转一个点的颜色并输出黑色和白色的联通块个数 《论科技不发达的危害》 这显然是个动态图问题,由于不强制在线,我们用Link-Cut-Tree维护边删除时间的最大生成树就可以了 时间复杂度O((n2+m)logn)O((n^2+m)logn) 常数巨大#include <queue>#include <cstdio>#原创 2015-09-06 18:02:47 · 2219 阅读 · 0 评论 -
BZOJ 3306 树 Link-Cut-Tree+set
题目大意:给定一棵有根树,每个点有个权值,要求维护换根、单点修改、查询子树最小值闲得我写了发LCT…… (这段时间咋净写LCT了。。。每个节点开一个multiset记录一下所有虚边连接的子树的最小值 然后切换虚边的时候把原来的实边连接的子树扔进multiset,把新的实边连接的子树从multiset里删除就行了 时间复杂度O(nlog2n)O(nlog^2n)#include <set>#i原创 2015-09-06 20:54:43 · 1890 阅读 · 0 评论 -
BZOJ 2908 又是nand Link-Cut-Tree
题目大意:给定一棵树,每个点有一个权值,多次修改某个点的权值或询问从某个点xx到另一个点yy的路径上的0 nand ax nand...nand ay0\ nand\ a_x\ nand...nand\ a_ynand操作不支持交换律和结合律,不过由于每一位独立,我们可以记录ai,ja_{i,j}表示第ii位初始为jj的时候一路nand过来的结果 然后用LCT维护一下即可 时间复杂度O(nlog2原创 2015-08-31 10:17:49 · 1831 阅读 · 0 评论 -
BZOJ 3779 重组病毒 LCT+线段树维护DFS序
题目大意:给定一棵树,初始每个点都有一个颜色,支持三种操作: 1.将某个点到根的路径上所有点染上一种新的颜色 2.将某个点到根的路径上所有点染上一种新的颜色,然后把根设为这个点 3.定义一个点的代价为这个点到根路径上颜色的种类数,求某个点子树中所有点代价的平均值我真是炖了狗了…… 容易发现这玩应就是个LCT,操作1就是Access,操作2就是Move_To_Root,代价就是一个点到根路径上原创 2015-05-22 17:18:47 · 2512 阅读 · 0 评论 -
BZOJ 2959 长跑 Link-Cut-Tree+并查集
题目大意:给定n个点,支持以下操作: 1.在某两个点之间连接一条无向边 2.改变某个点的权值 3.将每条边设定一个方向,然后从xx走到yy,求能经过的所有点的权值和 首先如果这个图是静态的,我们把边双都缩点,那么每次询问显然就是两个点所在边双路径上的点权和 现在图是动态的,因此我们用动态树维护一下就行了 如果连边的两个点不连通,就在LCT中连接这两个点 如果连边的两个点已经连通,就将这原创 2015-05-15 10:49:20 · 2291 阅读 · 0 评论 -
BZOJ 2555 Substring 后缀自动机+Link-Cut-Tree
题目大意:给定一个初始字符串,提供两种操作:1.在这个字符串的后面连接一个字符串2.询问某个字符串在当前串中出现了多少次SAM大叔的自动机~~对于每个询问就是在后缀自动机上找到该子串所对应的节点 找不到返回0然后这个节点的Right集合的大小就是这个子串的出现次数每次Extend的时候将新建节点沿着parent指针到根的路径上所有点的Right集合大小+1即可分裂节点的原创 2014-12-12 15:08:23 · 3692 阅读 · 0 评论 -
BZOJ 1180 CROATIAN2009 OTOCI Link-Cut-Tree
题目大意:给定一座森林,每个点上有权值,支持以下操作:1.询问两个点是否联通,若不连通则链接一条无向边2.修改某个点的权值3.询问两点间路径上点权之和,若不连通输出impossible一道很裸的LCT,打了发模板,权当练练NOILinux的熟练度了尼玛'p'写成'g'WA了一下午……明明LCT都没写错居然在这种逗B的位置出错……#include#include#incl原创 2014-11-03 09:19:52 · 1355 阅读 · 0 评论 -
BZOJ 3091 城市旅行 Link-Cut-Tree
警告:此题不可以使用cout进行输出,只能用printf,否则RE!亲测!!题目大意:给定一棵树,每个点有一个点权,提供四种操作:1.删除两点之间的连边 不存在边则无视2.在两点之前连接一条边 两点已经联通则无视3.在两点之间的路径上所有点的点权加上一个数 两点不连通则无视4.询问两点之间路径上任选两点路径上的点权和的期望值前三个操作都很基础 但是第四个东西……这啥玩应这是原创 2014-11-05 15:03:12 · 3284 阅读 · 0 评论 -
BZOJ 2594 Wc2006 水管局长数据加强版 Link-Cut-Tree
题目大意:给定一个无向图,多次删除某条边,多次查询两点之间路径上边权最大值的最小值Link-Cut-Tree维护动态最小生成树首先倒着做 将所有被删除的边标记(找边我用的排序+二分) 将没标记的边跑一遍Kruskal 求出最小生成树 然后每次加边和查询正常维护即可LInk-Cut-Tree一气呵成写完,Kruskal尼玛写挂了…… 居然忘记把并查集连边 这我也是醉了顺便吐槽一下题干原创 2014-11-21 14:24:55 · 2465 阅读 · 0 评论 -
BZOJ 3732 Network Link-Cut-Tree (我是认真的!!
题目大意:给定一个n个点m条边的无向连通图,k次询问两点之间所有路径中最长边的最小值LCT的裸题!首先维护一个动态的最小生成树,然后每次加入边时删除两点间路径上权值最大的边!最后询问时直接求x到y链上的最大权值即可!水爆了!!。。。好吧开玩笑的 真正的题解见http://blog.csdn.net/popoqqq/article/details/39755703我只是闲得无聊水一发LC原创 2014-10-09 13:30:43 · 2057 阅读 · 0 评论 -
BZOJ 2759 一个动态树好题 Link-Cut-Tree+扩展欧几里得
题目大意:给定n个形如xi=ki*x_pi+bi mod p的同余方程组 支持修改操作和求解操作确实好题 感谢此题作者 顺便吐槽一下作者的Splay不加空节点太蛋疼了0.0将每个点i的父亲设为pi 我们将会得到一座基环树林 将环上的一条边拆掉,在边的起始节点新开个域special_father记录这条边(P.S:好浪费 但是没办法)于是我们得到了一座森林 显然可以用LCT来维护 每个节原创 2014-10-24 22:57:47 · 3188 阅读 · 0 评论 -
BZOJ 3514 Codechef MARCH14 GERALD07加强版 Link-Cut-Tree+划分树
题目大意:给定n个点m条边的无向图,求问当图中只有【编号在[l,r]区间内】的边存在时图中的联通块个数 强制在线注意联通块是指联通了就是同一块,不是Tarjan求的那种块看到这题的那一刻我就想小便有木有0.0 这尼玛怎么做?可持久化并查集? 暴力? 分块乱搞? 。。。后来看了HZWER大神的博客才知道这种巧妙的算法0.0 太强大了直接复制wulala的题解 讲得很清楚 不累述了原创 2014-09-29 07:43:08 · 2278 阅读 · 0 评论 -
BZOJ 3282 Tree Link-Cut-Tree(LCT)
题目大意:给定N个点以及每个点的权值,要你处理接下来的M个操作。操作有4种。操作从0到3编号。点从1到N编号。0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和。保证x到y是联通的。1:后接两个整数(x,y),代表连接x到y,若x到Y已经联通则无需连接。2:后接两个整数(x,y),代表删除边(x,y),不保证边(x,y)存在。3:后接两个整数(x,y),代原创 2014-09-28 17:23:00 · 1497 阅读 · 0 评论 -
BZOJ 2631 Tree Link-Cut-Tree(LCT)
题目大意:维护一棵树,提供四种操作:1.将x到y的路径上所有的点权值+z2.将x1到y1的边断开,然后将x2和y2链接,数据保证链接后仍然是棵树3.将x到y的路径上所有的点权值*z4.询问x到y路径上节点的权值和对51061取模我就复制粘贴算了为何要重新打一遍Link-Cut-Tree第一道功能比较全的题,比较水,水个*啊,很久以前就写完了,由于BZ挂了一直没交上去,今天交原创 2014-09-25 20:53:44 · 2028 阅读 · 0 评论 -
BZOJ 2002 弹飞绵羊 Link-Cut-Tree(LCT)
题目大意:某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更有趣,Lostm原创 2014-08-26 16:20:49 · 2740 阅读 · 1 评论 -
BZOJ 2001 Hnoi2010 城市建设 分治+LCT
题目大意:给定一张带权无向图,每次改变一条边的边权并询问最小生成树,不强制在线日狗我为什么要写这个JB算法。。。对时间进行分治,每条边的存在时间为一个区间,拆成loglog个; 带着LCT把分治结构DFS一遍,一个节点入栈时用上面的所有边扔进LCT动态维护最小生成树,出栈时还原所有操作时间复杂度O(nlog2n)O(nlog^2n)如果没有特殊的卡常技巧请不要写这个算法#include <cstd原创 2015-11-13 18:21:34 · 3781 阅读 · 6 评论