树上问题
文章平均质量分 64
树上问题
_szy_
oier
展开
-
【数据结构】点分治
点分治(Centroid Decomposition)是一种树分治的技术,主要用于解决树上路径问题。在树结构中,点分治的目标是将原树分解为若干棵子树,使得每个子树的大小都不超过原树大小的一半。这样的分解可以有效地减小问题的规模,从而提高算法的效率。点分治的基本思想是选择一个合适的树节点作为"重心"(Centroid),然后以该节点为根进行递归处理。选取重心的方法是找到使得删除该节点后最大子树的大小最小的节点,这样可以保证分解后的子树规模较为平衡。原创 2023-10-06 11:20:16 · 305 阅读 · 0 评论 -
【树】树的直径和重心
树的重心是指树中的一个节点,通过删除该节点后,将树分成多个子树,使得每个子树的节点数都不超过整棵树节点数的一半。换句话说,树的重心是树的一种结构特征,它能够将树尽可能平衡地分割成多个相对均匀的部分。说人话就是重心在树所有节点中,它的最大子树的节点最小选择任意一个节点作为树的根节点。对树进行深度优先搜索(DFS)或广度优先搜索(BFS),计算每个节点的子树大小(包括自身节点)。对于每个节点,计算删除该节点后,各个子树的大小(即除去该节点后,以其邻居节点为根的子树大小)。原创 2023-10-05 21:56:56 · 351 阅读 · 0 评论 -
【图论】树上差分(边差分)
其实点差分和边差分区别不大。点差分中,d数组存储的是树上的节点边差分中,d数组存储的是当前节点到父节点的那条边的差分值。原创 2023-07-29 10:50:36 · 1717 阅读 · 0 评论 -
【图论】LCA(倍增)
LCA通常指的是“最近共同祖先”(Lowest Common Ancestor)。LCA是一种用于解决树或图结构中两个节点的最低共同祖先的问题的算法。在树结构中,LCA是指两个节点的最近层级的共同祖先节点。例如,考虑一棵树,其中节点A是节点B和节点C的祖先,而节点D是节点B和节点C的共同祖先,但节点D不是最低层级的共同祖先。在这种情况下,LCA就是节点D。LCA算法在计算机科学中有广泛的应用,例如在计算树的最近公共祖先、解决图的连通性问题、计算有向无环图(DAG)的最近公共祖先等方面。原创 2023-07-27 22:07:57 · 2332 阅读 · 0 评论 -
【图论】树上差分(点差分)
树上差分问题原创 2023-07-28 23:47:11 · 1570 阅读 · 0 评论