
lct
priority_ez
这个作者很懒,什么都没留下…
展开
-
bzoj3779 lct+线段树+dfs序
题意:有一棵n个节点的树,每个节点有一个颜色,初始每个节点颜色不相同,且以节点1为根。定义每个点的权值为这个点到根的路径上不同颜色的个数。现在进行m次操作,每次操作为下列三种之一: 1、将x到当前根路径上的所有点染成一种新的颜色; 2、将x到当前根路径上的所有点染成一种新的颜色,并且把这个点设为新的根; 3、查询以x为根的子树中所有点权值的平均值。分析:首先我们观察到:操作一每次修改都是原创 2017-02-21 22:05:07 · 554 阅读 · 0 评论 -
xsy1025 link-cut-tree+线段树
题意:分析: 代码:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=200100;typedef long long ll;int fa[N],c[N][2],rev[N],q[N];int dep[N],a[N][21],h[N],w[N],lst[N],tmp[N原创 2017-05-27 19:13:52 · 674 阅读 · 0 评论 -
link-cut-tree
注意: ①左父亲右儿子!!每棵splay中的点左子树的深度都比当前点小,右节点的深度都比当前节点的深度大。 题: xsy1173(YES) 一个朴素的想法就是暴力加入区间中的每一条边。 对于加入的一条边,它可能将两个联通块连起来,也可能没有任何贡献。 定义一个c[],c[x]=1就是有贡献,c[x]=0为没有贡献。 对于没有贡献的情况我们将链中编号最小的边删去,将其在c[]中变为0,强原创 2016-12-18 21:19:42 · 825 阅读 · 0 评论