随笔分类 -  树链剖分

摘要:"Luogu P3258" 题意就是对于一棵树,要求按照给出的顺序对每一个节点进行访问,记录每一个节点被经过的次数;特别地,我们认为只有从一个节点往外走才能被认为是经过一次。(最后一句话非常重要,仔细理解题意) 前置知识:树链剖分,差分。 最开始看到这道题我是打算使用树链剖分+线段树来做的。 但是我 阅读全文
posted @ 2019-12-10 21:51 Nanjo 阅读(162) 评论(0) 推荐(0)
摘要:"Luogu P2146" 由于对于每一个软件包有且只有一个依赖的软件包,且依赖关系不存在环。 很显然这是一个树形的结构。 再看题目要求的操作,安装实际上对应的是覆盖根节点到当前节点的路径,卸载则是覆盖该节点的整颗子树。 对于这样的操作,树链剖分+线段树可以很轻松地维护。 值得注意的是,根节点编号为 阅读全文
posted @ 2019-11-06 10:14 Nanjo 阅读(134) 评论(0) 推荐(0)
摘要:树链剖分的基本思想是把一棵树剖分成若干条链,再利用线段树等数据结构维护相关数据,可以非常~~暴力~~优雅地解决很多问题。 树链剖分中的几个基本概念: 重儿子:对于当前节点的所有儿子中,子树大小最大的一个儿子就是重儿子(子树大小相同的则随意取一个) 轻儿子:不是重儿子就是轻儿子 重边:连接父节点和重儿 阅读全文
posted @ 2019-11-05 14:40 Nanjo 阅读(157) 评论(0) 推荐(0)