树链剖分
Daniel__d
这个作者很懒,什么都没留下…
展开
-
雅礼集训6.20T1-树剖,换根
雅礼集训6.20T1 题目描述 题解 代码 #include<bits/stdc++.h> #define int long long #define M 600009 using namespace std; int read(){ int f=1,re=0; char ch; for(ch=getchar();!isdigit(ch)&&ch!='-';c...原创 2020-03-29 10:41:18 · 113 阅读 · 0 评论 -
旅行-树剖,动态开点线段树
P3313 旅行-树剖,动态开点线段树 题目描述 题解 对每一种教派开一颗线段树,但是很明显空间会爆,所以动态开点线段树,所以空间复杂度降低到nlognnlognnlogn,然后树剖套线段树,码量稍大 代码实现 #include<bits/stdc++.h> #define M 200009 using namespace std; int read(){ int f=1,re=0...原创 2020-03-29 10:55:00 · 98 阅读 · 0 评论 -
染色-树链剖分
染色-树链剖分 题目描述 解法 先树剖,然后再线段树维护 考虑对每个节点维护 numnumnum值:表示当前区间颜色段数量 lclclc值:表示当前区间最左端的颜色 rcrcrc值:表示当前区间最右端的颜色 合并时,如果左儿子的rc==rc==rc==右儿子的lclclc,那么合并后父节点的numnumnum值还要减一; 查询时同样要注意,参见代码 代码实现 #include<bits/s...原创 2020-03-29 10:49:25 · 119 阅读 · 0 评论