![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树剖
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 · 102 阅读 · 0 评论 -
[树剖]月下“毛景树”
描述 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园。 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里。 爬啊爬爬啊爬毛毛虫爬到了一颗小小的“毛景树”下面,发现树上长着他最爱吃的毛毛果 “毛景树”上有N个节点和N-1条树枝,但节点上是没有毛毛果的,毛毛果都是长在树枝上的。但是这棵“毛景树”有着神奇的魔力,他能改变树枝上毛毛果的个 数: Change k w:将第k条树...原创 2018-10-29 10:36:35 · 91 阅读 · 0 评论 -
换根树剖模板
换根其实很简单,我们考虑换根对答案的影响,换根不会对链上信息有任何影响,所以我们只考虑子树方面 1.当前的根root不在询问点u的子树中,表示虽然换了根,但u在以root为根的树中的子树就和在以最初的根的树中的子树一样 2.当前的根在询问点u的子树中,那么u在以root为根的树中的子树就是u到root路径上第一个点在以最初的根的树中的子树之外的部分 这两个部分画图好理解 特判一下u=root 的情...原创 2019-01-23 23:19:15 · 304 阅读 · 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 · 167 阅读 · 0 评论 -
[BZOJ5212][LCT][树形DP][树链剖分]ZJOI2018:历史
BZOJ5212 去年ZJOIDay1最可做的题吧 和SDOI2017树点涂色类似,但是难在修改和查询方式最大值 首先我们简化问题:给出树上每个点被access的次数,求最大的虚实边切换次数之和 一个点会被其子树和它自己影响,所以有一个比较普遍的结论,一个点的切换次数如果是它兄弟里面最大的,且小于总和的一半,那就轮流切换,否则总会有一些切换是无用的 所以就可以DP出一次的答案 考虑修改,修改会影响...原创 2019-05-08 12:17:01 · 157 阅读 · 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 · 149 阅读 · 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 · 127 阅读 · 0 评论