
主席树
romiqi_new
这个作者很懒,什么都没留下…
展开
-
191101CSP模拟题解
T1:给定n,k,ln,k,ln,k,l,求nnn个数每个取值[0,l][0,l][0,l],其一个子序列和为kkk的方案数,n,k≤20n,k\le 20n,k≤20补集转化,是个背包,然后状压算方案,dp of dpCode:#include<bits/stdc++.h>#define ll long long#define mod 998244353using nam...原创 2019-11-01 17:07:40 · 376 阅读 · 0 评论 -
[BZOJ1146][树套树][树链剖分]CTSC2008:网络管理
链接自己找,BZOJ还没开题意:求树上路径第k大,单点修改,可离线考虑树剖维护,内层主席树外层套个树状数组就完了(时空和代码长度都全方位被整体二分吊打)也可以整体二分Code:#include<bits/stdc++.h>using namespace std;inline int read(){ int res=0,f=1;char ch=getchar(); wh...原创 2019-09-26 21:52:58 · 153 阅读 · 0 评论 -
[LOJ2174][主席树]FJOI2016:神秘数
LOJ2174假设当前的神秘数为xxx,我们加入一个数yyy后新的神秘数是什么?显然如果y>xy\gt xy>x,则xxx依然是神秘数否则我们本来能够表示出[1,x−1][1,x-1][1,x−1]的数,则现在我们可以表示出[1,x−1+y][1,x-1+y][1,x−1+y]的数,那新的神秘数就是x+yx+yx+y我们首先假设当前神秘数为ggg,初始g=1g=1g=1,然后每...原创 2019-09-26 21:48:00 · 230 阅读 · 0 评论 -
[LOJ2011][主席树]SCOI2015:情报传递
LOJ2011经过分析,设某个点的起始时间为ttt,当前时间为iii,则对答案有贡献的点需满足i−t>Ci-t>Ci−t>C,即i−C>ti-C>ti−C>t当然把简单路径拆成到根节点的四条路径,那么修改一个点会对它子树产生影响,就可以按当前时间建主席树搞一搞了Code:#include<bits/stdc++.h>using namesp...原创 2019-09-25 22:01:02 · 141 阅读 · 0 评论 -
[BZOJ4826][主席树][单调栈]HNOI2017:影魔
BZOJ4826又来。。。显然考虑枚举作为区间最大值的位置iii,然后我们需要知道L[i]L[i]L[i]和R[i]R[i]R[i]表示iii左右两边第一个大于它的数的位置,用单调栈维护考虑一个iii对答案的影响,显然就是以下情况:L[i]L[i]L[i]和R[i]R[i]R[i]组成p1p1p1的影响iii和i+1i+1i+1组成p1p1p1的影响(L[i],i)(L[i],i)(...原创 2019-09-09 21:55:05 · 165 阅读 · 0 评论 -
[BZOJ4012][主席树][树链剖分]HNOI2015:开店
BZOJ4012可以点分树做,也可以树链剖分+主席树询问∑v∈[l,r]dis(u,v)\sum_{v∈[l,r]}{dis(u,v)}∑v∈[l,r]dis(u,v)就是求(r−l+1)∗dep[u]+∑v∈[l,r]dep[v]−2∗∑v∈[l,r]dep[lca(u,v)](r-l+1)*dep[u]+\sum_{v∈[l,r]}dep[v]-2*\sum_{v∈[l,r]}{dep[...原创 2019-09-05 18:46:26 · 177 阅读 · 0 评论 -
[CF453E][平衡树][主席树]Little Pony and Lord Tirek
CF453E先不考虑清空,类似于一道叫siano的线段树题,我们把所有点按照加满的时间排序,然后某一个时刻满能量的就一定是一个后缀,然后就可以用线段树维护了对于这道题,我们再用一个set维护一下删除时间相同的一段,每次查询就删除之前的并插入当前的,查询sum可以用主席树,分别维护前缀和后缀(满和未满),就是类似siano的方法Code:#include<bits/stdc++.h&g...原创 2019-09-03 22:08:02 · 225 阅读 · 0 评论 -
[CF840D][主席树]Destiny
CF840D设p=r−l+1k+1p=\frac{r-l+1}{k}+1p=kr−l+1+1,则如果一个权值出现了不小于p次,那我们将[l,r][l,r][l,r]排序,这个权值一定在p,2p...,kpp,2p...,kpp,2p...,kp中的任意一个地方出现过也就是说,我们找到这些位置上的数,再判断它们的出现次数是否小于p即可,用主席树可以方便实现Code:#include<...原创 2019-08-28 11:23:31 · 170 阅读 · 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 · 215 阅读 · 0 评论 -
[BZOJ3514][LCT][主席树]Codechef MARCH14 GERALD07加强版
BZOJ3514手残把ls打成了rs调了一个晚上。。。wsmBZOJ的MLE弹出来的是CE???考虑从前往后加边,就不需要考虑r后面的边了关键是如何除去lll前面的边的影响如果一个图在某一时刻有了一个环,那么断开这个环上的任意一条边显然对连通性没有任何影响,反过来,如果加入一条边形成了一个环,那也没有任何影响如何表示加边成环的过程?设形成环时环上最小的边编号为xxx,新加入的边编号为n...原创 2019-08-26 21:19:24 · 188 阅读 · 0 评论 -
[BZOJ5319][主席树]JSOI2018:军训列队
BZOJ5319首先,不动就可以站到队里面的人肯定不动在集合点左边的人依次从左往右排右边的人从右往左排距离的计算有个绝对值不好去掉,但发现把休息点排序后满足单调性,就可以在主席树上二分了Code:#include<bits/stdc++.h>#define ll long long#define ls tr[k].l#define rs tr[k].r#define...原创 2019-03-08 10:57:39 · 160 阅读 · 0 评论