
树链剖分
鹭天
敦立坤我是你爹
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【算法详解】 树链剖分
一、问题引入: 1、给你一个序列,再给你一堆询问区间,对于每个询问区间,请你求区间内的最大值、累加和等等。 对于这个问题,我们是早就做烂的了,线段树、树状数组等数据结构都能轻松求,这里不再详述。 2、给你一棵树,再给你一堆询问,每次给你两个点,让你求两个点之间的路径中的点权最大值、点权和等等。 对于这个问题,我们很显然不能再像问题111一样样直白的去做,因为树的路径与纯粹的区间不同。那我们能否用一个算法,将一棵树剖分成若干个区间(链),在用这些区间用111一样的方法去求的。 是的,这个算法就叫做—— 树链原创 2020-08-16 19:50:23 · 433 阅读 · 0 评论 -
【金华集训 && 笔记】 Day 5 笔记——树链剖分
笔记 树链剖分:顾名思义,就是对树的链不断地剖,不断地分。 链的分类: 1、重链剖分 2、长链剖分 重链剖分:每次从最重的儿子剖下去 以sz[u]表示u的结点个数 长链剖分:每次找最深的儿子剖下去 为啥重链剖分比长链剖分好??? 如果对于一棵树,每个节点的儿子都很深 长链剖分就可能会经过n\sqrt nn条链 直接崩掉 证明:重链剖分O(logn)O(logn)O(logn) 对于每个...原创 2019-08-01 22:09:00 · 175 阅读 · 0 评论