树剖
romiqi_new
这个作者很懒,什么都没留下…
展开
-
[树剖][线段树+堆][HNOI]网络
听说可以整体二分?BZOJ4538树剖,然后用线段树维护线段树的每个节点是两个堆,一个维护当前值,一个维护删除值Code:#include<bits/stdc++.h>using namespace std;inline int read(){ int res=0,f=1;char ch=getchar(); while(!isdigit(ch)) {if(ch=='...原创 2019-01-19 15:25:07 · 113 阅读 · 0 评论 -
[树剖]月下“毛景树”
描述 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园。 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里。爬啊爬爬啊爬毛毛虫爬到了一颗小小的“毛景树”下面,发现树上长着他最爱吃的毛毛果“毛景树”上有N个节点和N-1条树枝,但节点上是没有毛毛果的,毛毛果都是长在树枝上的。但是这棵“毛景树”有着神奇的魔力,他能改变树枝上毛毛果的个数:Change k w:将第k条树...原创 2018-10-29 10:36:35 · 100 阅读 · 0 评论 -
换根树剖模板
换根其实很简单,我们考虑换根对答案的影响,换根不会对链上信息有任何影响,所以我们只考虑子树方面1.当前的根root不在询问点u的子树中,表示虽然换了根,但u在以root为根的树中的子树就和在以最初的根的树中的子树一样2.当前的根在询问点u的子树中,那么u在以root为根的树中的子树就是u到root路径上第一个点在以最初的根的树中的子树之外的部分这两个部分画图好理解特判一下u=root 的情...原创 2019-01-23 23:19:15 · 332 阅读 · 0 评论 -
[BZOJ4034][欧拉序]HAOI2015:树上操作
BZOJ4034这个树剖sb题我写什么呢?欧拉序 o(nlogn)o(nlogn)o(nlogn)欧拉序:一个点入栈的时候加入序列,成为左括号,出栈的时候再加入一次,成为右括号修改就可以直接在欧拉序序列上修改这里右括号保存与左括号符号相反的值,达到一个类似差分的目的欧拉序要开两倍空间Code:#include<bits/stdc++.h>#define rs tr[k...原创 2019-02-28 21:53:11 · 184 阅读 · 0 评论 -
[BZOJ5212][LCT][树形DP][树链剖分]ZJOI2018:历史
BZOJ5212去年ZJOIDay1最可做的题吧和SDOI2017树点涂色类似,但是难在修改和查询方式最大值首先我们简化问题:给出树上每个点被access的次数,求最大的虚实边切换次数之和一个点会被其子树和它自己影响,所以有一个比较普遍的结论,一个点的切换次数如果是它兄弟里面最大的,且小于总和的一半,那就轮流切换,否则总会有一些切换是无用的所以就可以DP出一次的答案考虑修改,修改会影响...原创 2019-05-08 12:17:01 · 191 阅读 · 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 · 161 阅读 · 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 · 135 阅读 · 0 评论