2024.10.1 总结(集训;数据结构 主要是线段树)

XK 又来给我们讲课了。开心!

1. Baka's Trick

两种理解:

  • 双栈模拟队列。
  • [找到若干个划分点,使得每个区间包含恰好一个划分点。维护划分点到划分点段的前缀、后缀信息。在在线的实现中,在队列中维护仅仅一个划分点,维护它到前面每个点和它到后面每个点的信息。当这个划分点出队时,把队列中最后的点作为新的划分点。画图理解。](???)

在网上意外发现的(好像是暴力重构):https://www.cnblogs.com/xiaoziyao/p/17413029.html

2. 在线 & 离线

  • 在线:比离线多了时间维。时间维 -> 对操作(包括询问)顺序的限制。
  • 离线:去掉时间维。

3. 01 反转的一个 trick

用 2 棵平衡树来维护,一棵只维护是 0 的点,另一棵只维护是 1 的点。

01 反转操作相当于交换两棵平衡树上的某段区间。

4. 线段树区间二分

线段树子树二分直接做即可。但线段树区间二分有区间的限制,不好直接做,考虑转成线段树子树二分。

于是我们把这段区间在线段树上对应的 [log](?)个结点取出来。依次看答案是否在当前结点,如果不在就接着看下一个结点,如果在就直接在以这个结点为根的子树里二分(线段树子树二分)即可。

时间是单 log 的,因为找线段树子树二分的起点是 log,线段树子树二分也是 log。

实际实现不用真正把区间对应的 [log](?)个结点都抓出来,外层的找起点可以在线段树上直接找。见下面例题我的代码或我参考的那篇题解的代码。

例题:P11071 「QMSOI R1」 Distorted Fate

5. 空间优化

  • 转成只有 01[(或者类似,总之很小[/很少](很少 -> 离散化转成很小))](?),用 bool 之类的东西来存。只有 01 就可以直接用 bitset 了。(缩小值域)
  • 上面一条的一个另外的东西,比如三进制的状态离散化之后可以转成二进制(好像是插头 DP 板子里[要](???)用)。(缩小定义域)
  • 复用优化空间。
  • 离线复用优化空间。

6. 关注点权正负 贪心

[如果点权都是正的(或者非负),想想贪心。](?????)

例题:[P10641](?)。

7. xor 有结合律,还能拆

8. 树上距离,转成 dep 的和差(dep 不一定是深度,可以把 和根之间的路径上的边权和 作为深度)。有时需要分讨 lca。

9. 有的题要考线段树的结构。一段区间在线段树上取出的结点参考非递归线段树。

10. 分治、合并

  • 分治(或划分)和合并互为对方的逆(反过来的过程)。这一点可以用于转化题意、分析时间复杂度。

  • 如果一次分治时的复杂度只看较小的一边,那么这个分治就是逆的启发式合并。

  • 分治不一定要按区间中间那个 mid 分开,也可以按区间最值来分开。

上面两条的例题:。

11. 不好直接做的限制

“刻画”

维护一些信息,把限制转化成关于这些信息的不等式。

把不等式变成关于 i 的东西都在一边、关于 j 的东西都在另一边的样子。(这里以优化 DP 为例,可能可以从 j 转移到 i,这个转移有限制)

于是问题被转化成了二维数点问题。

扫描线(按照某一维排序),将二维数点问题转化为一维数点问题。

例题:XK 今天的抓的比赛里的 T4。

12. 抓 排列的性质

用好排列的性质。

  • 数不重复。
  • 调和级数。
  • [下面这条(1 到 n 枚举倍数的倍数)。](???????)
  • mex(这里认为是最小的没出现的 正数)转 min。(比如区间 mex,变成排列中不在这个区间里的数的 min)

例题:好像是 XK 今天的课件里 EX 部分的第一题。

13. [1 到 n 枚举倍数的倍数](???????)

[时间 \(O(n \log ^ 2 n)\)。](???????)

14. DP 中,关注状态数、转移数

如果很少可能就会有特殊处理方法。

例题:好像是 XK 今天的课件里 EX 部分的第二题。

15. 维护一些信息,用它们来判定

例题:好像是 XK 今天的课件里 [IOI] [Seats](???)那道题。

16. [蒙特卡洛判定](???????)

必要条件。[(充分条件好像也可以(还没有分析概率),只是多次做的时候不太一样(有一个可行就可行))](???????)

正确概率的分析。

做多次来提高正确概率。

例题:今天下午比赛的 T1。


lr 推的题:https://qoj.ac/problem/6504

2024.10.1

posted @ 2024-10-01 21:45  huangkxQwQ  阅读(10)  评论(0编辑  收藏  举报