线性链表的基知:1、线性链表的链式存储结构称为线性链表,每一个元素都有2部分组成。分别为数据域、指针域2、链式存储既可以表示线性结构,也可以表示非线性结构3、线性链表在进行元素插入与删除时,不需要移动表中的元素4、线性链表的在存储时,存储空间可以连续也可以不连续5、在线性单链表中,只能由根结点开始,遍历到所以结点,而且顺序不能颠倒6、在双向链表、循环链表中,可以从任何一个结点开始直接遍历到所以结点            
                
         
            
            
            
            一、内容
题意:给定一棵树,以1为根节点, 然后给定几组操作, 操作1 v节点和子树节点都变为1 操作2 v和它的祖先都空(变成0),操作3 查询v是否为空。
二、思路
2次dfs预处理。 用water做为lazy标记, 为-1代表子区间既有0也有1, 为0则代表子区间全部是0,为1则代表子区间全部是1,初始都为0。
查询的时候,进行线段树单点查询即可。
三、代码
#include <c...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-02-03 10:59:50
                            
                                70阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、内容题意:给定一棵树,以1为根节点, 然后给定几组操作, 操作1 v节点和子树节点都变为1 操作2 v和它的祖先都空(变成0),操作3 查询v是否为空。二、思路2次dfs预处理。 用water做为lazy标记, 为-1代表子区间既有0也有1, 为0则代表子区间全部是0,为1则代表子区间全部是1,初始都为0。查询的时候,进行线段树单点查询即可。三、代码#include <c...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-27 14:27:16
                            
                                109阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一些定义 重儿子: 结点所有儿子里子树规模最大的结点,即$sz[ x ]$ 最大。 我第一次接触这个概念居然不是在这,而是在这。 P5666 CSP-S2019 树的重心 有时间再写题解吧,这是一个不错的思维题。 重链: 从重儿子一直延伸到叶子结点的路径。 树链: 任意两点间的距离 ( 不严谨的说。 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-12 16:40:00
                            
                                266阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            意义: 树链剖分 就是对一棵树分成几条链,把树形变为线性,减少处理难度 概念 题目大意: 给定一棵有根树,给定每个点初值。 需要处理的问题: 分析: 树链剖分+线段树 树剖部分: 需要数组: 1.dfs1: 目标: ①找到fa,重儿子(son) ②处理节点深度,子树大小(size)(dep[root            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-05-13 12:00:00
                            
                                301阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            嗟乎!树剖之难者线段树也,非树剖也。 (文末有*****) 树链顾名思义,是树上的路径。树链剖分,就是将一棵树分成若干链,再用数据结构(如线段树)去维护每一条链,明显复杂度 O(log n) 。 树链剖分,又名“重链剖分”,那什么是重链呢? 我们将树中的边分为轻边和重边,定义Size(x) 为以 x ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-27 20:01:00
                            
                                129阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            树链剖分详解(洛谷模板 P3384) 洛谷·[模板]树链剖分 写在前面 首先,在学树链剖分之前最好先把 LCA、树形DP、DFS序 这三个知识点学了emm还有必备的 链式前向星、线段树 也要先学了。 如果这三个知识点没掌握好的话,树链剖分难以理解也是当然的。 树链剖分 树链剖分 就是对一棵树分成几条            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-11-18 23:32:00
                            
                                87阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            本博客的主要思路来源:树链剖分详解(洛谷模板 P3384)、OI Wiki 树链剖分 作用 简单点说,树链剖分就是将一棵树分成几条链,然后给它标号标成线性,然后处理区间问题: 将树的$x$点到$y$点最短路径上所有结点的值都加d 询问树的$x$点到$y$点的路径和 将以$x$为根的子树内所有值加$d ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-10-23 21:36:00
                            
                                146阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            不是树剖教程,是一些写码时候发现的问题 具体树剖教程可以参考博文https://www.cnblogs.com/chinhhh/p/7965433.html 1 #include<bits/stdc++.h> 2 #define ll long long 3 using namespace std; ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-12 21:39:00
                            
                                74阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            树链剖分是把一棵树分割成若干条链,以进行树上操作的一种方法。树链剖分有很多种类,本文主要介绍最常用的重链剖分。 重链剖分 一、定义 一个节点的子节点中子树大小最大的为重子节点,其余节点为轻子节点。特别地,若有多个子节点的子树大小相等,则在其中任选一个作为重子节点,其余为轻子节点。 一个节点到其重子节 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-07 18:07:00
                            
                                153阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            树链剖分看起来是个很高级的算法,但实际上很简单。在介...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-10-08 17:28:00
                            
                                190阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            树链剖分 总结: 树链剖分实质就是将树上的普通节点变成区间的故事,然后用线段树来求解。 1、 其实树链剖分就是把边哈希到线段树上的数            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-01-08 18:26:00
                            
                                102阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            树链剖分树链剖分 就是对一棵树分成几条链,把树形变为线性,减少处理难度需要处理的问题:将树            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-07-05 10:32:19
                            
                                87阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            关于链剖链剖实质上是通过轻重链的划分,将树剖成一条条重链,首尾相连存进数据结构(线段树、树状数组、splay之类的),支持路径查询,修改等如何实现?定义以下几种东西重儿子 子树大小最大的儿子轻儿子 除重儿子其他的都是轻儿子重边 每个点连向它的重儿子的边轻边 连向轻儿子的边重链 重边组成的链这里总共有5条重链,1-2-4-8、5、9、3-6-10、7我们按照优先重链的DFS序重新标号,用DFN[]数            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2016-05-20 19:16:52
                            
                                67阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            树链剖分 定义: 树链剖分,又称“重链剖分”。我们将树中的边分为轻边和重边。定义Size(x) 为以 x 为根的子树的节点个数,令 x 的儿子中 y 的Size()最大,那么,我们称边(x,y)为重边,y为x的重儿子。而由重边构成的链即为重链。 性质: 从根到某一点的路径上,轻边不超过O(logN) ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-17 21:53:00
                            
                                143阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            推荐一篇博客 我的模板(洛谷p3384) #include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cctype>#include<cmath>#include<cst            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-02-21 20:42:00
                            
                                94阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            入门博客推荐 树链剖分说白了就是把一棵树拆成若干个不相交的链,然后用一些数据结构去维护这些链。 因为通常的数据结构处理区间信息很容易,但处理树上的信息就显得捉襟见肘了。于是我们想到把树拍成一个区间用线段树去维护信息。(和树的dfs序是类似的原理)。 树链剖分的几个常见应用: ①查询/修改树的子树的值            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-08-10 19:14:00
                            
                                90阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            前言 qwq 链加,链和,子树加,子树和 题目 【模板】轻重链剖分/树链剖分 描述 如题,已知一棵包含 NN 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 1 x y z , 表示将树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值都加上 \(z\) 。 2 x y ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-14 09:23:00
                            
                                64阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            参考博客:树链剖分详解 #树链剖分的引入 ##先回顾两个问题: 1、将树从x到y结点最短路径上所有节点的值都加上z 我们很容易想到,树上差分可以以 O(n+m) 的优秀复杂度解决这个问题 2、求树从x到y结点最短路径上所有节点的值之和 lca大水题,我们又很容易地想到,dfs O(n)预处理每个节点 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-20 15:21:00
                            
                                257阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            树链剖分 要求 已知一棵包含 NN 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 1 x y z,表示将树从x到y结点最短路径上所有节点的值都加上z。 2 x y,表示求树从x到 y 结点最短路径上所有节点的值之和。 3 x z,表示将以x为根节点的子树内所有节点值都加上z。 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-10-08 09:30:00
                            
                                131阅读
                            
                                                                                    
                                2评论