08 2023 档案
发表于 2023-08-11 08:27阅读:22评论:0推荐:0
摘要:### 前言 dus on tree 就像其实就像是暴力,但是通过选择正确的顺序,使得暴力变得更加的快速。 ### 算法思路 查看题目 ``` 给出一颗 n 个节点的树,每个节点有一个颜色,询问你没个节点的子树中有多少中颜色。 ``` 显然,我们知道暴力扫的话是枚举每个点,再暴力去找他的子树,显然在
阅读全文 »
发表于 2023-08-10 10:27阅读:53评论:0推荐:0
摘要:### 前言 淀粉质是一种用来解决两两点对之间类似路径之类的问题。通过选取重心,使得暴力求解更加的快速。 ### 具体思路 淀粉质通常是通过选取重心的方式,将一棵树不断分治成比较均匀的几部分。因为重心的性质,最多只会递归 层。假设每一层的时间复杂度都是 n 的话,那么总的就是 $n
阅读全文 »
发表于 2023-08-08 16:29阅读:26评论:0推荐:0
摘要:# 直接正文 ~~不得不说,这玩意是真TM的恶心,调了我两天~~ ## 总的分析 什么时候需要使用树套树呢?在很多条件需要你使用一种树形结构维护,同时又加上了区间或是其它格外的限制时,可以使用树套树。像让你维护区间第k大,区间排名之类的两种数据结构的功能综合到了一道题中时。 ## 线段树套平衡树 #
阅读全文 »
发表于 2023-08-08 15:09阅读:14评论:0推荐:0
摘要:## 基本思路 线段树合并其实就是简单的暴力合并就可以了。一般是运用于权值线段树。通常是在每个节点都需要要一颗线段树才能维护答案,且有多个节点时,会使用线段树合并。但每个节点所有的权值不能太多,如果都是比较满的二叉树的话,时间复杂度就会很高。 通常,加入值的数量跟节点数量在同一级别的话,时间复杂度是
阅读全文 »
发表于 2023-08-07 17:12阅读:13评论:0推荐:0
摘要:### 用途 李超线段树的用法非常固定,一般就是让你求对于给出的一些线段或直线中,对于某个x最大的y是那个。 通常可以用于斜率优化。 而其的时间复杂度是 ### 思路 注:下文默认是线段,因为直线也只用改一下就行了。 我们建立一颗线段树,每个节点保存在当前区间,当x=m
阅读全文 »