摘要: CDQ 分治 分治,分而治之,一般采取递归的形式,先将要处理的部分分开分别处理,再合并计算。 而 CDQ 分治正是基于分治思想的离线算法。 具体地,CDQ 分治对询问进行分治,对于一个询问区间 [l,r],CDQ 分治进行以下操作: 处理 [l,mid]。 处理 \([mid+1,r 阅读全文
posted @ 2024-11-15 10:29 imzfx_Square 阅读(18) 评论(2) 推荐(0) 编辑
摘要: Meet in the middle 双端搜索 不是怎么这个人现在才会双端搜索 Meet in the middle,顾名思义,就是从两端进行搜索,然后把两端的答案合并得到最终答案。 如果原本的搜索时间复杂度为 O(ab),那么 Meet in the middle 可以将搜索的时间复杂度 阅读全文
posted @ 2024-10-14 11:31 imzfx_Square 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 珂朵莉树 核心思想:set 存储一段权值相同的区间以及权值,区间赋值暴力推平。 要求:数据随机,有区间赋值操作,此时复杂度趋近于 O(mlogn)。 区间的定义: struct node{ int l,r;//左,右 mutable int v;//权值 bool operator < 阅读全文
posted @ 2024-10-11 16:55 imzfx_Square 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 可持久化线段树 P3919 【模板】可持久化线段树 1(可持久化数组) 维护一个长度为 N 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 访问某个历史版本上的某一位置的值 此外,每进行一次操作(对于操作2,即为生成一个完全一样的版本,不作任何改动),就会生成一个新的版本。版 阅读全文
posted @ 2024-10-11 16:53 imzfx_Square 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 点双:在一个联通块中删去任意一个点后剩下的点仍然能构成联通块,则此联通块叫做点双联通分量。(两个点是一个点双) 性质:任意两点间可构造出两条不相交路径(除起点和终点外不重复经过其他点)。 割点:在一联通块中删去一点可使剩下的点不联通,则此点叫做割点。 一个点可能在多个点双里。 边双:在一个联通块中删 阅读全文
posted @ 2024-10-11 16:38 imzfx_Square 阅读(18) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示