强烈推荐这篇文章,一下子就看懂AC了。 ...
题目描述 有一棵点数为 N 的树,以点 为根,且树点有边权。然后有 M 个操作,分为三种: 操作 :把某个节点 x 的点权增加 a 。 操作 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 :询问某个节点 x 到根的路径中所有点的点权和。 输入格式 第一行包含两个整数 N, M 。表示点数和操作数。 接下来一行 N 个整数,表示树中节点的初始权值。 接下来 N 行每行两个正整数 f ...
2020-11-15 06:49 9 130 推荐指数:
强烈推荐这篇文章,一下子就看懂AC了。 ...
树链剖分 1. 相关概念 重儿子:父亲节点的所有儿子中子树结点数目最多(size最大)的结点; 轻儿子:父亲节点中除了重儿子以外的儿子; 重边:父亲结点和重儿子连成的边; 轻边:父亲节点和轻儿子连成的边; 重链:由多条重边连接而成的路径; 轻链 ...
LCA的类型多种多样,只说我知道的,就有倍增求LCA,tarjin求LCA和树链剖分求LCA,当然,也还有很多其他的方法。 其中最常用,速度最快的莫过于树链剖分的LCA了。 树链剖分,首先字面理解一下,什么是树链剖分。 就是把一棵树剖分为若干条链,然后利用数据结构(树状数组,SBT ...
洛谷·[模板]树链剖分 写在前面 首先,在学树链剖分之前最好先把 LCA、树形DP、DFS序 这三个知识点学了 emm还有必备的 链式前向星、线段树 也要先学了。 如果这三个知识点没掌握好的话,树链剖分难以理解也是当然的。 树链剖分 树链剖分 就是对一棵树分成几条链,把树形变为线性 ...
转载请注明出处,部分内容引自banananana大神的博客 别说你不知道什么是树╮(─▽─)╭(帮你百度一下) 前置知识: dfs序 线段树 先来回顾两个问题:1,将树从x到y结点最短路径上所有节点的值都加上z 这也是个模板题了吧 我们很容易想到,树上差分可以以O(n+m ...
前言 树链剖分是什么? 树链剖分,说白了就是一种让你代码不得不强行增加1k的数据结构-dms 个人理解:+1:joy: 有什么用? 证明出题人非常毒瘤 可以非常友(bao)好(li)的解决一些树上问题:grimacing: (友情提示:学树链剖分之 ...
最近一段时间决定先好好搞一下数据结构了,首先搞了下树链剖分; 专题训练:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28982#overview 树链剖分并不是一个复杂的算法或者数据结构,只是能把一棵树拆成链来处 ...
预备知识:线段树,DFS序 DFS序 DFS序,字面意思,就是DFS到的顺序 我们只需要在搜到节点的时候记录一下就可以了 比如这样可能是一个树的DFS序 那知道了DFS序又有什么用呢 我们可以发现一颗子树在DFS序上是连续的一段 那么它就有了一个区间的性质,每个节点对应 ...