树链剖分
ZigZagK
一个蒟蒻。
展开
-
树链剖分
树链剖分-轻重链剖分原创 2017-03-24 09:03:04 · 406 阅读 · 1 评论 -
【树链剖分(DFS序)+线段树】BZOJ4034(HAOI2015)[树上操作]题解
题目概述有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。操作 3 :询问某个节点 x 到根的路径中所有点的点权和。解题报告操作1,3直接用树链剖分就可以解决,但是操作2什么鬼?实际上很简单,因为树链剖分也在构造一组DFS序(只不过优先重儿子),所以用这组原创 2017-10-15 20:48:52 · 404 阅读 · 0 评论 -
【dsu on tree】Codeforces600E[Lomsat gelral]题解
题目概述给出一棵 nn 个节点的树,每个节点有一个颜色。如果 cc 是一个节点子树中出现次数最多的颜色,则称该节点被 cc 占领(一个节点可以被许多颜色占领)。求每个节点的 ∑c\sum c 。解题报告烂大街的dsu on tree(树上启发式合并)经典题。先树剖,对于 xx 我们递归求出轻儿子的答案(不记录信息),然后再求出重儿子的答案(记录信息)。之后暴力统计所有子树节点的信息(重儿子为根的子树原创 2017-12-18 20:43:04 · 372 阅读 · 0 评论 -
【dsu on tree】Codeforces741D[Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths]题解
题目概述给出一棵 nn 个节点的树,边权是小写字母( aa 到 vv ),若一条链上的小写字母可以打乱排列成回文则称该链满足条件。求每个节点子树中最长的满足条件的链。解题报告询问子树不修改果断上dsu on tree。能打乱排列成回文说明至多只有一个字母出现了奇数次,因为字母只有 2222 个,所以位运算异或就可以快速判断。至于求答案……因为dsu on tree是大暴力,所以瞎搞就行了……示例程序原创 2017-12-19 20:16:41 · 457 阅读 · 0 评论 -
【树链剖分+李超线段树】BZOJ4515(Sdoi2016)[游戏]题解
题目概述给出 nn 个点的树, mm 个操作,操作有两种: s t a bs\ t\ a\ b :在 s→ts\to t 上的每个点 ii 都插入一个数 a×dis(s,i)+ba\times dis(s,i)+b 。 s ts\ t :询问 s→ts\to t 中最小的数。 解题报告显然用李超线段树(查了四天了QAQ),由于在树上,所以先树剖。对于 s→ts\to t ,我们的想法肯定是拆成两半:原创 2017-12-17 13:39:40 · 517 阅读 · 0 评论