数据结构==线段树合并
Helium_wild
这个作者很懒,什么都没留下…
展开
-
bzoj2212(Tree Rotations 线段树合并模板)
题目 一个树中逆序对的个数等于 左子树逆序对个数+右子树逆序对个数+左子树>右子树的对数。可以递归。关键就是怎么每次都处理 左子树>右子树的对树这一部分。 假如左子树所有出现的权值可以在一颗权值线段树上体现出来,右子树的所有出现的权值可以在另一颗权值线段树上体现出来。那么这一部分就是要求treeA 比treeB大的对数也可以递归得到。记两颗权值线段树分别是treeA,treeB; 分...原创 2019-09-12 22:04:17 · 151 阅读 · 0 评论 -
bzoj2733(永无乡 支持其中的两个联通快合并 问某个联通快第k小 线段树合并模板)
题目 代码在bzoj T了 洛谷A了。。妈的不知道为什么。线段树合并裸体。。 #include<cstdio> using namespace std; const int N=3e5+5; struct tree{int l,r,sum;}t[N*70]; int root[N],sz=0; void build(int &x,int l,int r,int val){ ...原创 2019-09-13 10:34:53 · 89 阅读 · 0 评论 -
P3605(Promotion Counting晋升者计数 线段树合并裸题)
题目 #include<cstdio> #include<algorithm> using namespace std; const int N=1e5+5; struct tree{int l,r,sum;}t[N*60];int root[N],sz; struct Edge{int to,nex;}edge[N];int head[N],ttt; int a[N],...原创 2019-09-13 11:56:00 · 137 阅读 · 0 评论 -
Tree Intersection(求每条边将树分成两个集合的共同颜色的个数 线段树合并 裸题)
题目 题意: 对于每条边,把这条边删了,树分成了两个集合,求这两个集合中共同的颜色数量。 对于节点u,就看u节点的子树中,有多少种颜色没有到达这种颜色的上限,就是对u所对应的边的答案 #include<cstdio> #include<cstring> #include<algorithm> #define fnq freopen("input.txt","r...原创 2019-10-09 09:58:16 · 219 阅读 · 0 评论