OI集训 Day3
Content: Data structs
Date:2025.7.19
内容
- 三维偏序问题
- CDQ分治
- 整体二分
- 分块
- 莫队算法
具体内容
三维偏序问题
问题描述
给定一些三元组 ,询问对于三元组 ,有多少个三元组满足 且 且 。
首先对于这个问题,我们考虑先去重,然后排序。排序规则如下:
- 如果 ,则返回
- 如果 ,则返回
- 否则返回
这样我们就把 的条件去掉了。
接下来我们考虑分治,定义函数 表示当前解决到了区间 ,取其中点 ,将原序列的问题转化为三个部分:
- ,由 解决。
- ,由 解决。
- ,即被 分成了两个部分。
对于第三种情况,我们需要解决的是如下问题:
问题描述
在区间 中,有多少对二元组 (其中 )满足 且 。
可见问题转化为了二维偏序问题,用线段树解决就可以。
整体二分
普通的二分操作是直接对于每个询问二分答案,判断答案是否合法。
整体二分的思路是将所有询问一起二分,根据二分的答案对询问进行分类,再逐步求解。
例题:
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.

