平衡树
romiqi_new
这个作者很懒,什么都没留下…
展开
-
191015NOI模拟总结
T1:CF643D解法:是一道模拟题。。。我们可以用一个set维护全局最大值,然后再用n个set维护所有当前点的ans,用这n个set更新全局set即可完成3操作考虑修改的影响,会影响到它和其原来父亲,并且父亲的E会改变从而导致父亲的父亲的答案也改变,新的父亲也是一样的,更新全局答案时注意处理三个点的环的情况,然后就是模拟了Code:#include<bits/stdc++.h&g...原创 2019-10-16 10:21:20 · 215 阅读 · 0 评论 -
[可持久化平衡树][codeforces702F]T-shirts
CF 702 F分析:衣服排好序后把所有人插入平衡树,然后用打标记的方式维护买的操作,就是split一下之后把权值都大于当前衣服的那棵树打上购买标记,购买标记分为ans和money两个部分,merge的时候暴力把权值小的树中所有权值大于另外一棵树中某些节点的节点丢到那棵树中,一个节点最多被丢log次所以复杂度是O(nlog2n)O(nlog^2n)O(nlog2n)Code:#includ...原创 2019-01-26 11:34:02 · 365 阅读 · 0 评论 -
[BZOJ5509][平衡树]TJOI2019:甲苯先生的滚榜
BZOJ5509水题平衡树Code:#include<bits/stdc++.h>#define ll long long#define ui unsigned intusing namespace std;inline ll read(){ ll res=0,f=1;char ch=getchar(); while(!isdigit(ch)) {if(...原创 2019-08-22 14:24:43 · 136 阅读 · 0 评论 -
[BZOJ4771][主席树][平衡树]七彩树
BZOJ4771考虑没有距离限制怎么做一个点的贡献是1,如果它和它在dfs序上相邻的同颜色的点组合,会使它们lca的贡献-1那就可以用线段树维护了然后如果有距离限制,可以看做是按深度逐个加点的过程,那就把线段树改成主席树就完了还要用一个平衡树或者set维护加点的dfs序Code:#include<bits/stdc++.h>#define ll long long#d...原创 2019-08-28 10:49:42 · 187 阅读 · 0 评论 -
[CF414E][平衡树][欧拉序]Mashmokh's Designed Problem
CF414Edfs序上的深度是连续变化的,用欧拉序比较方便所以可以维护区间深度最大和最小的点查询一个点最近的深度小于它的点就是fa两个点之间深度最小的点就是lca都可以用平衡树维护对于第三个询问,直接找出最右边的深度为k的点即可Code:#include<bits/stdc++.h>using namespace std;inline int read(){ in...原创 2019-08-28 11:15:19 · 227 阅读 · 2 评论 -
[CF475F][平衡树][分治]Meta-universe
CF475F考虑暴力的做法就是按x或y坐标排序然后枚举在哪里切割,这样是n2n^2n2的考虑优化,枚举在哪里切割是不必要的,我们可以从两端向中间枚举,当两个指针碰面时在当前位置切割,然后分成两段继续做,这样是lognlognlogn的加上一个平衡树或者set维护这两个指针就是nlog2nnlog^2nnlog2nCode:#include<bits/stdc++.h>#de...原创 2019-09-03 21:59:28 · 242 阅读 · 0 评论 -
[CF453E][平衡树][主席树]Little Pony and Lord Tirek
CF453E先不考虑清空,类似于一道叫siano的线段树题,我们把所有点按照加满的时间排序,然后某一个时刻满能量的就一定是一个后缀,然后就可以用线段树维护了对于这道题,我们再用一个set维护一下删除时间相同的一段,每次查询就删除之前的并插入当前的,查询sum可以用主席树,分别维护前缀和后缀(满和未满),就是类似siano的方法Code:#include<bits/stdc++.h&g...原创 2019-09-03 22:08:02 · 201 阅读 · 0 评论 -
191003NOI模拟题解
T1:题目大意:给你一张图,每条边有边权,要求保留边权和尽量大的边使得每个点至多有一条出边和至多一条入边,点数200,边数5000解法:显然的二分图最小费用流,可行流即可不需要最大流Code:#include<bits/stdc++.h>#define ll long longusing namespace std;inline int read(){ int res=...原创 2019-10-05 17:05:53 · 321 阅读 · 0 评论