
树链剖分
YihAN_Z
ただのあほです
展开
-
BZOJ 3083 遥远的国度 树链剖分
题目大意:给定一棵有根树,有以下操作:换根,链上修改,子树查询最小值。树链剖分配合线段树可以轻松解决子树查询与链上修改,换根怎么办?当然不能真的换根。设初始根为root(也就是说树剖处理时是以root为根的),当前根为cur,对于每一次查询子树x进行讨论:原创 2016-12-31 08:46:08 · 339 阅读 · 1 评论 -
BZOJ 3221 [Codechef FEB13] Obserbing the tree树上询问 树链剖分 主席树维护区间加等差数列
题目大意:给出一棵树,每个结点初始均为0,要求支持以下操作:路径加等差数列,询问路径上结点权值和,回到之前的某个版本调到吐血。很明显可以看出需要树链剖分+主席树来解决,由于需要在主席树上区间修改所以标记永久化。 区间维护等差数列需要在每个结点上维护 首项 和 公差。 树链剖分时在路径上加等差数列需要讨论,细节比较多,详见代码。 (我看错题了..注意回到某个版本并不舍弃在这之间的版本)#incl原创 2017-04-02 00:15:30 · 776 阅读 · 0 评论 -
BZOJ 3531 [SDOI2014]旅行 树链剖分+线段树
题目大意:给定一棵节点为n的树,每个节点有一个颜色c(c<=n)和权值(正整数)。实现以下操作: 1.修改某个点的颜色 2.修改某个点的权值 3.询问两点间与这两个点同颜色的最大值 4.询问两点间与这两个点同颜色的和 保证询问的两点同色挺简单的一道树链剖分+线段树。给每个颜色开一个线段树,不过要动态开内存。空间复杂度O(nlogn)。 树链剖分一定要注意最后x,y两点在同一链上时也要统计原创 2016-12-11 15:59:02 · 446 阅读 · 0 评论