摘要: 树上差分 定义 树上差分就是树上的差分——gzy 用途(差分) 它可以维护多次对序列的一个区间加上一个数,并在最后询问某一位的数或是多次询问某一位的数。(总之修改操作一定要在查询操作之前) 点差分 对于树上的区间(假设为 [l,r][l,r]),我们可以把它看成从 ll走到 rr的简单路径 而前缀和 阅读全文
posted @ 2021-02-03 17:30 爆零王 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 树的直径 定义 那么树上最远的两个点,他们之间的距离,就被称之为树的直径。 树的直径的性质 1. 直径两端点一定是两个叶子节点。 2. 距离任意点最远的点一定是直径的一个端点,这个基于贪心求直径方法的正确性 可以得出。 3. 对于两棵树,如果第一棵树直径两端点为(u,v),第二棵树直径两端点为 (x 阅读全文
posted @ 2021-02-03 07:55 爆零王 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 概况 LCA(Lowest Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。 实现过程 预处理:通过dfs遍历,记录每个节点到根节点的距离dist[u],深度d[u] init()求出树上每个节点u的2^i祖先p[u][i] 求最近公共祖先,根 阅读全文
posted @ 2021-02-02 19:55 爆零王 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 写这个主要是因为要学图论了,再不学就死翘翘了... 变量: u[i],v[i],w[i]:u[i]、v[i]和w[i]表示第i条边是从第u[i]号顶点到v[i]号顶点(u[i]—>v[i]),且权值为w[i]。 first[i]:每个顶点其中一条边的编号(可以理解为遍历的起点) next[i]:编号 阅读全文
posted @ 2021-01-31 21:16 爆零王 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 题目简述: 对于给定的一段正整数序列,逆序对就是序列中ai​>aj​ 且 i<j的有序对。 输出序列中逆序对的数目。 知识补充: 树状数组: 这东西就是就是用数组来模拟树形结构,在解决区间上的更新以及求和问题时速度为O(logn),速度比普通数组要快很多。 很重要的一点,那就是:在写代码的时候,把树 阅读全文
posted @ 2021-01-30 17:08 爆零王 阅读(77) 评论(0) 推荐(0) 编辑