假期做的串串

这个假期好像还是做了点能写出来的题的。

代码合集

洛谷 P3546 [POI2012] PRE-Prefixuffix

CF1654F Minimal String Xoration

CF356E Xenia and String Problem

洛谷 P7361 「JZOI-1」拜神

SPOJ 687 REPEATS - Repeats

洛谷 P5115 Check,Check,Check one two!

洛谷 P8147 [JRKSJ R4] Salieri

首先肯定要建出来 AC 自动机,发现答案具有二分性,这个第 k 大看起来就不太好直接做,考虑上一个二分,但是现在还是不好求,因为我们的 cnticnt_i 是不同的。

那么怎么能让 cnticnt_i 相同呢?现在就出来了最 👍 的一步,我们把这个串在 AC 自动机上跑到过的点全部拉出来建一颗虚树(建的是 fail 树的虚树),然后就惊奇的发现虚树上每条边的 cntcnt 是相同的 😮,现在我们只要在原树上建一颗主席树,当前节点的主席树从 fail 树父亲继承过来,对虚树上的每条边在原树上进行二分,即求 vimidcntiv_i \ge \lceil \frac{mid}{cnt_i} \rceil 就行了,因为 cntcnt 都相同,所以可以随便做,时间复杂度 O(n log2n)O(n\ log^2 n)

CF1063F String Journey


假期做的串串
http://lnyxqwq.github.io/2023/08/29/假期做的串串/
作者
lnyx
发布于
2023年8月29日
许可协议