08 2023 档案

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

点击右上角即可分享
微信分享提示