树
文章平均质量分 72
fearlessxjdx
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树的直径
树的直径 树上最长的简单路径即为树的直径。 求树的直径的方法就是在树上任选一点u,求距离点u最远的点y,再求距离点y最远的点s,点y到点s的距离即为树的直径。(即两遍DFS或BFS求最远点) 证明: 1) 如果u 是直径上的点,则v显然是直径的终点(因为如果v不是的话,则必定存在另一个点w使得u到w的距离更长,则于BFS找到了v矛盾) 2) 如...转载 2018-09-17 15:21:34 · 203 阅读 · 0 评论 -
倍增法求LCA
#include <bits/stdc++.h> #define rep(i,a,b) for(int i = a; i <= b; ++i) #define per(i,a,b) for(int i = a; i >= b; --i) #define WTS(x) cerr <&l原创 2018-10-02 15:53:10 · 178 阅读 · 0 评论 -
树链剖分详解
转载请注明出处,部分内容引自banananana大神的博客 树链剖分就是将树分割成多条链,然后利用数据结构(线段树、树状数组等)来维护这些链。 前置知识: dfs序 LCA 线段树 先来回顾两个问题: 1,将树从x到y结点最短路径上所有节点的值都加上z 这也是个模板题了吧 我们很容易想到,树上差分可以以O(n+m)的优秀复杂度解决这个问题 2,求树从x到y结点最短路径上所有节点的值之和 lca...转载 2018-10-02 17:13:00 · 431 阅读 · 0 评论
分享