首页 > 其他分享 >树分治

树分治

时间:2023-07-15 22:34:36浏览次数:45  
标签:子树 递归 处理 分治 每次 序列

点分治

回想一下在序列上的二分治:每次选择序列中点,递归处理两个子序列,处理跨过两个序列的信息。前两步保证了复杂度,第三步往往是解决问题的关键,那么这个思路能不能搬到树上呢?

答案是肯定的,树分治思路和序列分治类似,我们每次递归处理子树,统计子树间的答案..,初步建立起模型后还有一个问题,如果每次我们分出的子树都极其不平均,那么总的分治次数接近 \(O(n)\),相当于没分。一个可行的解决方案是选择子树的重心作为根,因为重心的子树最大不超过 \(\frac{n}{2}\),所以可以保证 \(log\) 次的分治。


problem

边分治

标签:子树,递归,处理,分治,每次,序列
From: https://www.cnblogs.com/Lkkaknoi/p/17557103.html

相关文章

  • 分治FFT
    考虑一下递推式:\[f_{i}=\sum\limits_{j=1}^ig_jf_{i-j}\]如果要暴力计算的话复杂度是\(n^2\),考虑到后面的是卷积的形式,但是唯一的问题是\(f\)自己得出自己。考虑分治。设当前分治区间为\(l,r\),首先分治计算\(l,mid\)的所有\(f\)值,然后考虑\(l,mid\)给\(mid+1,r\)......
  • CDQ 分治
    CDQ分治的思想最早由IOI2008金牌得主陈丹琦在高中时整理并总结,因此得名。适用范围多用于统计有特征的点对\((i,j)\)的数量或找出有特征的点对。流程对于一个区间\([L,R]\)中的点对\((i,j)\)(\(L\lei<j\leR\)),考虑分为三部分(\(mid=\frac{L+R}2\)):\(L\lei<j\lemid\)......
  • cdq分治学习笔记
    做着做着cdq分治的题发现自己太菜了写不出来题XD,所以来写写学习笔记。CDQ分治CDQ分治一般有两个用途:解决偏序问题、将动态问题转化为静态问题。偏序问题我们先来介绍第一个问题:偏序问题。普通的二维偏序就类似于逆序对,每个元素有两个属性\(a_i,b_i\),我们需要统计\(a_......
  • 6307: 网线主管 二分/分治
    描述 仙境的居民们决定举办一场程序设计区域赛。裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛。他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器。为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离......
  • 【树分治】HDOJ 5016
    先预处理出每个点的最近点。。。。然后考虑固定根,对于每个根,从根到子树的路径中任选两条,如果dis[i]+dis[j]<w[j]。那么i就是j的一个合法点。。。。然后递归处理子树即可。。。。扩栈才过的。。。#include<iostream>#include<queue>#include<stack>#include<map>#includ......
  • 线段树分治 学习笔记
    离线算法。在时间轴上建线段树(可能要事先离散化),要维护的东西用vector什么的挂在线段树的节点上,DFS一遍线段树,每次进入一个节点就加入要维护的东西,离开时撤销即可。由于DFS的特性,只需支持最近的undo,用stack可维护。......
  • CDQ分治 学习笔记
    按@ouuan大佬所说,CDQ分治可以当作ex归并看待。它的思想和归并排序十分相似:假设要对区间\([l,r)\)处理先不管\([\text{mid},r)\),计算\([l,mid)\)同理计算\([mid,r)\)补回之前忽略的部分,即“归并”例:三维偏序给定\(n\)个点\((a,b,c)\),求\(a_1\lea_2\we......
  • 分治专题
    在牛子老师的博客下边看到yspm给了CF1019E。看了一眼,不会。看了题解,我超边分治+闵可夫斯基和,一个都不会。乐。还有20天,还能补多少坑呢,不好说。仍然是每天高压作业。但是出乎意料的晚上不是很失眠,虽然说醒了以后还是很困。现象:让大象出现的事物或者方法。大象是一种体量......
  • 【杂题乱写】6 月多校分治专题训练
    AGym-101471DMoneyfornothing就是求\((d_j-c_i)(q_j-p_i)\)的最大值。可以看作点对\((d_j,q_j)\)与\((c_i,p_i)\)在二维平面上构成矩形的最大值,且\(c_i\ged_j,p_i\geq_j\)。把卖家点对放在序列\(a\),买家点对放在序列\(b\),先删去一定不优的点,删完之后\(a,b\)都......
  • 【杂题乱写】6 月多校分治专题训练
    AGym-101471DMoneyfornothing就是求\((d_j-c_i)(q_j-p_i)\)的最大值。可以看作点对\((d_j,q_j)\)与\((c_i,p_i)\)在二维平面上构成矩形的最大值,且\(c_i\ged_j,p_i\geq_j\)。把卖家点对放在序列\(a\),买家点对放在序列\(b\),先删去一定不优的点,删完之后\(a,b\)都......