首页 > 其他分享 >处理手法学习(树链剖分)

处理手法学习(树链剖分)

时间:2022-12-26 08:11:06浏览次数:43  
标签:手法 剖分 处理 然后 树链 数组

今天vp了两场cf,感觉对开眼界还是很有用的,手感也回来了点

首先给出一些点,如何找出是否属于同一条链

首先暴力方法就是每次dfs,在分叉大于2的地方看看是否包含所有的点

这是个笨方法

处理手法是首先找到深度最大的点,这个点一定是端点的一头,然后找到离这个点最远的第二个点,然后有一条定理就是

如果在同一条链上,那么三点距离中的最小两点一定等于最长的路径长度

然后枚举点就行了

妙蛙

然后就是悟出来的一个事情,当两个数组进行比较的时候,比如变换,那么一定要把一个数组固定在相对约束较强的维度,然后贪心

标签:手法,剖分,处理,然后,树链,数组
From: https://www.cnblogs.com/tiany7/p/17004927.html

相关文章

  • BZOJ 3252 攻略(长链剖分模板 链的常用性质 贪心)
    BZOJ3252攻略​ 给定一棵带边权的树,选择k个叶子结点,使这些叶子结点与根节点相连,形成k条路径。输出被路径覆盖的所有边的边权和的最大值(同一条边若被重复覆盖只算一......
  • 最大面积最小的三角剖分 Minimax Triangulation
    #include<iostream>#include<algorithm>#include<cmath>#include<vector>usingnamespacestd;#definemistake(P)(fabs(P)<eps?0:(P<0?-1:1))......
  • 边权树链剖分
    边权树链剖分一般的树链剖分都是维护的点权,而如果要维护边权怎么办呢?思路我们可以把边权转换为点权。一个点有很多个儿子,但只有一个父亲。如果一个节点的点权记录到其儿......
  • 重链剖分学习笔记
    最近在机房自习复习了一下这些东西,主要给自己看的。参考文献:OIWiki《算法竞赛》(罗勇军,郭卫斌著)1重链剖分简介1.1重链剖分基本性质树链剖分,就是把树分成若......
  • 重链剖分学习笔记
    最近在机房自习复习了一下这些东西,主要给自己看的。参考文献:OIWiki《算法竞赛》(罗勇军,郭卫斌著)1重链剖分简介1.1重链剖分基本性质树链剖分,就是把树分成若......
  • 树链剖分学习笔记
    树链剖分学习笔记简介树链剖分是一种可以把树丢到线段树上维护的一种算法,时间复杂度为\(O(n\log^2n)\)。思路一、一些概念1.重儿子:如果一个点有儿子,那么所有儿子中......
  • P3128 [USACO15DEC]Max Flow P(树上倍增和树链剖分)
    思路1(树上倍增$+$树上差分)每次都修改一条从\(u\)到\(v\),不就是树上差分的专门操作吗??直接用倍增求\(LCA\),每次\(d[u]++,d[v]++,d[LCA(u,v)]--,d[f[LCA(u,v)][0]]--\)。......
  • 浅谈树链剖分
    树链剖分定理重儿子:一个节点所有儿子中,子树大小最大的儿子即为重儿子,如有多个,任取一个即可。轻儿子:除了重儿子外的所有儿子。重边:父节点\(\to\)重儿子的边。重链:由......
  • 树链剖分
    树链剖分0x00绪言在阅读这篇文章前,确保你已学会你下内容:线段树深度优先遍历会了这些就可以开始阅读本篇文章了。0x01什么是树剖把一棵树拆成若干个不相交的链,然......
  • 检测内存泄漏、优化的常用手法[笔记]
    可视化自动内存泄漏检测//debugImplementation'com.squareup.leakcanary:leakcanary-android:2.3'///屏蔽提升操作速度,开启后不需要任何代码的。原理是内容提供者开......