随笔分类 - 算法·理论
摘要:引言 神奇的思路。 我们都知道归并排序,由于已经排好了左半边和右半边,想要求出这一片就很快。而 cdq 就是基于这一过程。 特性 cdq 是离线算法,往往用来解决三维偏序问题。 以 陌上花开 一题为例。假如用暴力做,时间为 O(n2)O(n^2)O(n2)。cdq 分治可以优化至 O(nlog2n
阅读全文
摘要:引言 已经一个月快没有写博客了,颓。 相比于普通 treap 的 zig 和 zag 操作,splay 多了“双旋”。即连续转两次:zig-zig,zag-zag,zig-zag,zag-zig。 splay 的很大一个特性就是可以快速地将 x 旋转为 y 的儿子或根,其操作也是据此实现。 旋转 (
阅读全文
摘要:前言 由王钦石发明,也叫 Ailen trick。 适用范围 对于这样的问题:有若干个物品,选一些(有某些限制),问最(最大或最小)价值是多少。对于这个限制,可能是要求恰好选 mmm 个。 对问题有这样的要求: 如果没有限制,解决起来简单,并且还要知道取了多少个。 设恰好取 iii 个物品的最优价值
阅读全文
摘要:前言 点分治适合处理大规模的树上路径信息问题。 例题:Tree 假设我们要对根为 rtrtrt 的树进行求解。会有任意一条合法的路径,都可以被分成两类: 路径包含 rt 的。而这种路径可以看作 A→rt→BA\to rt \to BA→rt→B 不包含 rt 的。 对于情况 1。设定 sis_isi
阅读全文