首页 > 其他分享 >Summary - 分治

Summary - 分治

时间:2023-05-21 20:12:53浏览次数:42  
标签:log 复杂度 分治 mid Summary 算法

本文旨在总结数种分治算法。

1.区间分治:当需要对所有区间统计答案时,可以考虑这种分治。具体来说,在处理\([l,r]\)内的所有区间时,分三类考虑:跨过\(mid\)的,完全在\(mid\)左边的,完全在\(mid\)右边的。如果可以\(O(m)\)或\(O(m\log m)\)处理第一类情形(\(m=r-l+1\)),然后用分治处理另外两类情形,就可以在\(O(n\log n)\)或\(O(n\log^2 n)\)的时间内解决问题。

2.根号分治:这似乎不算一类典型的分治,但是它有分治这个名字。这种算法更像是一种思想,即分类讨论。当我们需要对\(k=1,2,...,n\)统计答案时,可能可以想到多个算法,某些复杂度为\(k\)的多项式级别,某些复杂度为\(\frac{1}{k}\)的多项式级别,那就可以对不同的\(k\)采用不同的算法,并取合适的分界值,最优化时间复杂度(往往是\(O(n\sqrt{n})\))。

3.点分治:处理树上路径统计问题的利器。

标签:log,复杂度,分治,mid,Summary,算法
From: https://www.cnblogs.com/by-chance/p/17419066.html

相关文章

  • Solution Set - CDQ分治
    A[洛谷P2163].给定平面上若干个点,多次询问给定矩形内的点数。B[洛谷P3810].给定若干个三元组,对所有\(k\),求这样三元组的个数:恰有\(k\)个三元组,满足其每个分量都不超过它的相应分量。C[洛谷P3157].给定一个序列,从中依次删去某些元素,求每次删除前逆序对数目。D[CF762E/CF1045G].......
  • 使用details和summary元素实现树形展示
    1.先看效果2.默认是关闭的,并且父级关闭后,子级的开关状态会被保留,再次展开时,可恢复;3.需要对details元素增加一个padding-left或margin-left,否则展开后,子级和父级是左对齐的,视觉效果不好;4.一般是details元素套一个summary元素和一个展开后要展示的内容,如果details中没有sum......
  • Solution Set - 点分治
    A[POJ1741].给定一棵树,边有权,求长度不超过\(k\)的路径数目。B[HDU4871].给定一张图,边有权,求它的最短路径树上恰含\(k\)个点的路径中最长路径的长度及数目。C[HDU4812].给定一棵树,点有权,求字典序最小的一个点对,其路径上的所有点权之积模\(100003\)等于\(k\)。D[HDU5469].给定一......
  • 点分治学习笔记
    概念点分治用于解决有一定要求的链的计数。对于点\(u\)的子树的问题,可以将答案分为:经过点\(u\)不经过点\(u\)第一种可以用桶加暴力。枚举一端的长度,用桶计算另一端长度;第二种分到子树中解决即可。注意到,在随机选根的时候该算法表现不优秀,但若根为重心,因为每次子树......
  • 树分治学习笔记
    前言既然序列可以分治,那么树也可以分治。树上的分治可以分为点分治与边分治。点分治边分治主要用于处理树上路径问题。考虑一个分治的过程:选中一棵树的根,计算经过根的路径的贡献,然后以其子结点为根对子树递归地计算贡献。容易发现,在构造数据下这种算法的复杂度是可以达到\(O(......
  • 点分治学习笔记
    点分治序列上的操作可以用很多方式维护,线段树树状数组平衡树啥的,但是如果毒瘤出题人把序列搬到了树上,则需要一些奇妙方法。一般有两种(好几种?)方法:树链剖分,把树上路径转化成dfn序上的多段进行操作。LCT,不多说,目前只会板子,没搞太懂。点分治,这个是不用把树转化成序列的,而是将树......
  • 树分治学习笔记
    一、点分治一、概述前置知识:数的重心。假设我们要统计一棵有\(n\)个节点的树上所有点对之间距离是\(k\)的有多少对。注意树上的边有长度。\(n\le10^5,k\le10^6\)。一个朴素的算法是遍历树上的所有点对,处理出距离(也就是链的长度)。时间复杂度\(O(n^2)\)。考虑优化。......
  • CDQ分治学习笔记
    CDQ分治学习笔记目录CDQ分治学习笔记前言CDQ分治思想例题1、翻转对分析codeP3810三维偏序(陌上花开)输入格式输出格式样例#1样例输入#1样例输出#1提示分析code前言之前在gdkoi讲解是有人用\(CDQ\)分治A了day1T3。好像分治FFT要用到,而且其他人都学过了,所以蒟蒻再次恶补一手......
  • CDQ分治
    其本质是对分治的进一步理解先来看一个问题二维偏序给定\(n\)个二元组,第\(i\)个二元组\(p_i=(x_i,y_i)\),求顺序对个数。即求满足\(x_i<x_j\)且\(y_i<y_j\)的\((i,j)\)对数很容易想到以\(x\)为第一关键字从小到大排序,\(y\)用树状数组维护计数即可。......
  • 棋盘覆盖问题——分治法
    问题描述有一个 x (k>0)的棋盘,恰好有一个方格与其他方格不同,称之为特殊方格。现在要用如下图所示的L形骨牌覆盖除了特殊方格以外的其他全部方格,骨牌可以任意旋转,并且任何两个骨牌不能重复。请给出一种覆盖方式。 样例:输入:输出: 思路——分治法:将一个规模为n的问题分解......