收获速记 0314
完全背包:
https://www.cnblogs.com/pp-orange/p/18762799
关于背包我们终于做到了!不过 fxt 论文写了一模一样的东西,但是自己发明也很有收获。
完全背包还有一个 n^2log 的分治做法,在只关心可达性的场景下配合FFT,可以解决钦定物品数量的题
这个分治做法并不是完全没用,https://www.luogu.com.cn/problem/P10209
这个题就是有 x->x+2 和 x->x+1 的转移(但不是背包)但是做法就是这个分治背包的思想。
多重背包:
我们的优化手段目前有:单调队列、二进制分组、贪心缩放。
以及,如果所有物品重量都 <= n 的话,我们有一个关于周期的做法。(仅可达性)
如果所有物品都 <=n 个我们可以暴力 01 背包,这是 n^3 的。否则我们任取一个数量 >n 个的元素当成主元,我们断言在 n^2 之后的到 sum-n^2 之间的都是以这个主元大小的周期,就成功了!
小型分组背包:
https://www.cnblogs.com/pp-orange/p/18764088
https://www.cnblogs.com/pp-orange/p/18765533
目前的成果都记录在里面了。
以及,这个问题是可以wqs二分的。(这是否揭示了更深刻的一类wqs二分?)
关于无值域不交要求的可并FHQ
https://www.luogu.com.cn/article/nromhkwj
很实用的东西,虽然比较慢,但是可以让你在不会正解的情况下拿到远大于暴力的分。
关于区间排序。
这个问题我过去的的理解一直停留在线段树分裂合并。
以及一个 cf 的题:一个 3n 的序列,我可以对前2n个排序,也可以对后 2n 个排序。这个交替 3 次就能整体排序。(用 01 法很容易分析)
实际上 01 法也是区间排序中一个很重要的东西了。有一个 HNOI 的题就是二分答案 01 法。虽然这个做法被线段树分裂合并按着打,但是这个思想很重要。
https://www.luogu.com.cn/problem/P11244 这才是真正的好题。这个问题从一个很少有人尝试过的视角分析了这个问题另一本质。
https://www.luogu.com.cn/problem/CF1010E
https://www.luogu.com.cn/problem/P7361
这两个题都是伪动态二维偏序,即我们并不是要二位偏序数点,而是只想知道某个右下矩形内有没有点。这个可以线段树维护最值做。
https://www.luogu.com.cn/problem/AT_arc188_c
挺有意思的 2-sat 建模。
过去没有发现,原来2-sat换元有的时候真的是本质上有用的。比如我们有 对 xi yi zj 的约束,和 yi zj 的约束,这个时候我们换元 xi 为 xi yi 就行了。这个的本质并不是我们强化了什么。而是我们用换元刻画了“我们没有单独调用 xi ”这个事实,所以 xi yi 才成为一个有效的化简。
关于整体二分的更优做法
https://www.luogu.com.cn/problem/P7361
这个题字符串部分挺有意思的,虽然不难,但胜在巧劲。
我们容易把问题转化成在一个长度为 nlogn 的序列上 回答 \(q\) 次需要整体二分的问题。指针难撤销(只能可持久化),指针移动 logn。
这个问题很显然可以直接做到 nlog^2n 的空间,然后 qlog2+nlog2n 的时间。但是这个空间太差了。
我们回顾 ai's trick,我们 log 次扫描,但是由于这个题序列长度是 nlogn,ai's trick时间复杂度就变劣了,这太坏了!(ai's trick主要好写,而且可以用于不可撤销的,基于均摊的复杂度的问题)
冷静分析,我们记录 N 为序列长度(就是上面那个 nlogn),Q 是回答询问次数。
持久化:
)空间:O(NlogN)
)时间:O(Qlog^2 N)
AI‘s trick:
)空间:O(N)
)时间:O(Nlog^2 N+Qlog^2 N)
所以实际上 ai‘s trick 一直都有劣势,只是我们在 N,Q 同阶的时候没有发现这个问题。
我们尝试把这个问题的时间和空间同时做到最优。
我们结合 ai's trick 和 持久化两者。
我们扫描一次(不进行可持久化),每 N/log 次就回答所有询问一次,这样每个询问都要回答 log 次,复杂度没有超过 Qlog^2N,但是我们把询问定位到了 N/log 大小的块内。我们在块内再用持久化,空间复杂度降到了 O(N/logN * logN = N),而时间还是 Qlog^2N,我们就同时做到了 ai's trick 的空间复杂度和持久化的时间复杂度!
通信题的线性代数方法
https://uoj.ac/problem/178 新年的贺电
这个题非常的高质量,考察了各种通信压缩技术。
最重要的还是我把这个题用随机向量的线性代数方法爆标到了理论下界。感觉这个方法异常深刻。
这个方法在通常可以接受的时间复杂度内,完全的克服了多项式方法的缺陷(向量个数有限,容易满秩)
缺点是时间复杂度比较高,极端情况下比较不够块。(以及依赖一点点随机,不够理论优美,尽管概率极高)
https://www.luogu.com.cn/problem/P10539 包括这个我过去爆标的问题,我通过一点点有手段规避了同余的问题,但是实际上随机向量可以完全无视这个问题。
笛卡尔树最大值新增 与 秃子酋长
https://www.luogu.com.cn/problem/P8078 秃子酋长
https://www.cnblogs.com/pp-orange/p/18102659 笛卡尔树最大值新增
偶然发现这两者的联系!
收获记录在那个博客里了。