首页 > 其他分享 >【学习笔记】边分治

【学习笔记】边分治

时间:2023-12-28 19:22:06浏览次数:35  
标签:子树 分治 笔记 学习 LCA 直径 节点 mathrm

Page Views Count

算法思想

和点分治类似,边分治每次选一条边,考虑跨过这条边的路径贡献,为了保证复杂度,会让两边子树大小尽量接近。

发现菊花图无论怎么分治都是无效的,考虑将原树三度化,具体做法是如果 \(u\) 有两个儿子,就新建一个节点连接第二个儿子,如果还有更多的儿子,就再新建节点与上一次新建的节点当前的儿子相连,这样复杂度是正确的。

具体过程和点分治类似:求当前的子树大小,求当前的重心边,递归处理子问题。

边分治具有优美的性质:每次分治只会考虑两棵子树之间的贡献,也就完全不需要点分治中容斥掉自己贡献的操作。缺点是点数翻倍。

例题

Luogu-P4565 CTSC 2018 暴力写挂

在边分治过程中,某两个子树的 \(\mathrm{LCA}\) 一定之和分治中心父亲一侧子树的节点有关,所以式子可以写成形如 \(val_u+val_v-\mathrm{depth'}(\mathrm{LCA}'(u,v))\)。将分治边两侧子树视作黑白两种颜色,那么就是在第二棵树上求异色点权最大值,具体可以建虚树,枚举 \(\mathrm{LCA}'(u,v)\)。

Luogu-P4220 WC 2018 通道

依旧是第一棵树边分治,第二棵树建虚树,现在每个节点有点权,固定了第二棵树的 \(\mathrm{LCA}\),剩下可以看作对第三棵树求一个带端点点权的有权直径,由于边权非负,容易证明这满足所有的直径性质,那么对虚树每个子树维护然后合并就行了,实际上要维护两条同色直径,合并时求一下异色直径。(只维护一条异色直径可能出现端点不是所有同色节点的最长距离对于端点的情况)

标签:子树,分治,笔记,学习,LCA,直径,节点,mathrm
From: https://www.cnblogs.com/SoyTony/p/Learning_Note_about_Edge_Centriod_Decomposition.html

相关文章

  • 学习笔记436—科研通
    官网链接:https://www.ablesci.com/ 第一步:点击“发布论文求助” 第二步:填写论文信息。 第三步:确认被上传的论文,并表示感谢。 ......
  • SQL Server with(nolock) 学习
     1.with(nolock)使用方法问题:由于数据量过大,会产生数据锁死问题解决方法:目的就是查询是不锁定表,从而达到提高查询速度的目的。SELECTCONVERT(VARCHAR(100),VW_BaoBiaoShuJu.LsTime,23)ASDateNow,COUNT(VW_BaoBiaoShuJu.ID)ASTaskNums,SUM......
  • 统计学习方法第1章 统计学习方法概论1.1李航
    第1章统计学习方法概论本章简要叙述统计学习方法的一些基本概念。这是对全书内容的概括,也是全书内容的基础。首先叙述统计学习的定义、研究对象与方法;然后叙述监督学习,这是本书的主要内容;接着提出统计学习方法的三要素:模型、策略和算法;介绍模型选择,包括正则化、交叉验证与学习......
  • IaaS--如何降低故障的影响(何恺铎《深入浅出云计算》笔记整理)
     【常见故障及解决方法】1、第一种故障是在宿主机的级别,这也是从概率上来说最常见的一种故障。宿主机出现问题,虚拟机肯定都会有问题。解决方法是,尽量做好集群,采用HA的方式,做好救场。集群也应该注意,虚拟机尽量放在不同虚拟机上,甚至对应的宿主机都最好避免在同一个机架上;2、第二......
  • 【python机器学习课程设计】驾驶员睡意检测——机器模型训练
    一.选题背景  驾驶员的疲劳和睡意是道路交通安全的重要隐患之一。据统计,疲劳驾驶导致的交通事故占比较高,甚至可能造成生命和财产的巨大损失。因此,开发一种有效的驾驶员睡意检测系统对于提高交通安全具有重要意义。  通过监测驾驶员的眼部数据等,可以建立一个机器学习模型来......
  • sqli-labs(sql注入漏洞)靶场通关笔记(慢更新)
    sqli-labs(sql注入)靶场通关笔记sqli-labs这个靶场对于想学习和了解sql注入的小白来说(比如说像博主这样的菜菜),我也是开始打这个靶场,来具体的学习一下sql注入,靶场里面包含了很多的sql注入的情况,以及我们在sql注入的时候遇到的阻碍。sqli-labs第一关:第一步判断是否存在sql注入:1......
  • Linux系统操作---笔记大全(老男孩视频)
    视频课程老师博客:http://oldboy.blog.51cto.comhttps://www.oldboyedu.com/linux操作系统镜像下载地址:https://www.centos.org/     -----centos的官网https://mirrors.aliyun.com/   ----阿里云下载==============================================Linux操......
  • 读书笔记+画图
    print("0217向悦")importnumpyasnp#创建两个矩阵a=np.array([[1,2,3],[4,5,6]])b=np.array([[7,8],[9,10],[11,12]])#计算矩阵乘积c=np.dot(a,b)#打印结果print(c)importscipy.optimizeasopt#定义方程组的函数deff(x):return[x[0]**2+x[1]**2-1,x[0......
  • 新概念3册L14笔记(A noble gangster)
    课文课文理解1)TherewasatimewhentheownersofshopsandbusinessesinChicagohadtopaylargesumsofmoneytogangstersinreturnfor'protection.'2)Ifthemoneywasnotpaidpromptly,thegangsterswouldquicklyputamanoutofbusinessby......
  • 算法题遇到不会的题目应该怎么学习?
    从别人那里学来的刷题策略,主要是因为自己太菜,很多题目都做不出来!第一步:看题目,想解法(十几分钟想不出来直接看题解,看看别人的解法,最好能够默写出来)第二步:自己尝试写出来第三步:隔几天再次写一下,体会+优化第四步:一周过去后,再来一遍第五步:复习,例如面试或者机试前重点:能够在其中获......