树链剖分
Anxdada
多读书多看报, 少吃零食多睡觉
展开
-
树链剖分以及模板
这里有一篇博客讲的很好 模板: (这个主要是树链剖分的板子, 套的其他数据结构没写) int n, cnt, head[maxn], tim; int dep[maxn], siz[maxn], fa[maxn]; int son[maxn], top[maxn], a[maxn]; int tid[maxn], out[maxn], pos[maxn]; struct node { ...原创 2018-07-20 16:01:18 · 269 阅读 · 0 评论 -
HDU 6162 Ch’s gift 【LCA暴力 or 主席树 + 树链剖分】
传送门 题目大意: 一颗树, 树上有点权, 每次询问u, v的树上路径上的点权范围在[a, b]内的权值和是多少. 思路: 这道题居然暴力能过, 而且巨快…. 后面还是写了写正解. 很明显我们需要把u - > v的路径剖下来, 然后问题就变成区间问题了, 询问区间中在一定范围内的数的和, 而我们知道主席树可以做区间中小于等于某个数的和是多少, 所以这个就可以用主席树来维护, 同时维护下&...原创 2018-07-30 09:24:34 · 199 阅读 · 0 评论 -
牛客挑战赛21 E 题 未来城市规划 【树链剖分 + 线段树 + 思维】
传送门 题目大意: 给定一颗以1为根有根树, 树上有边权, 每次询问有两种操作, INC u v w 代表把u到v的路径上所有边权都增加w ASK P 询问以P为根的子树内任意两点之间的距离和 思路: 增加操作很好做, 直接在树剖上做就可以了, 关键时怎么处理查询, 很明显我们要找每条边被覆盖的次数的关系来解决, 在树上的一条边, 如果考虑所有经过节点对数经过它次数, 假设连接这条边的时...原创 2018-08-04 16:04:48 · 287 阅读 · 0 评论 -
HDU - 6393 Traffic Network in Numazu 【树链剖分 + 分类讨论】 水题.
传送门 题意: 给定一副n个点n条边的带权无向图, 也就是环套树的那种, 然后两种操作, 一是修改边权, 二是询问两点之间的最短距离. 思路: 如果是树就是裸题了嘛, 但是这个就多加了一条边, 所以我们可以用并查集将环上的一条边取下来保存, 然后剩下的就是树了嘛,就用树链剖分和线段树维护, 修改的时候我们加一个特判是不是修改的取出来的这条边即可. 然后询问同样我们知道有三种情况, 一直直接走树...原创 2018-08-14 09:50:59 · 468 阅读 · 1 评论