ZigZagK的博客
[后缀自动机+线段树合并]Codeforces1037H【Security】题解
题目概述CF1037H解题报告算法不难得出:对于 $x$ 的每个前缀 $x[1,i]$ ,往后添加一个比 $x_{i+1}$ 大的字符 $ch$ ,$i$ 越大 $ch$ 越小得到的答案就越小。...
[广义后缀自动机+DP+单调队列]洛谷4022(CTSC2012)【熟悉的文章】题解
题目概述Luogu4022解题报告不难想到二分答案 $mid$ ,然后求 $L\ge mid$ 是否可行。令 $K={\lfloor{len\over 10}\rfloor}$ ,那么舍弃的位置...
[广义后缀自动机]Codeforces316G3【Good Substrings】题解
题目概述CF316G3解题报告用广义后缀自动机做可以避免很多复杂的情况。把 $s$ 和所有 $p$ 都扔进广义SAM里,然后把 $s$ 扔进SAM匹配得出所有属于 $s$ 的节点(注意 $fai...
[后缀自动机+线段树合并]HydroH1079【‘Minami Kotori’ Pantw 和他的召唤物二元葡萄】题解
题目概述HydroH1079解题报告建出SAM,找到 $[A,B]$ 对应节点 $p$ ,然后在 $p$ 的 $Right$ 集合上考虑。$[C,D]$ 中出现 $[A,B]$ 的子串比较难算,...
[后缀自动机+线段树合并+后缀数组]LOJ2720【「NOI2018」你的名字】题解
题目概述LOJ2720解题报告毒瘤字符串题……这题的关键在于,给出串 $T$ ,在 $S$ 的 $[L,R]$ 子串中查询每个后缀的最长匹配前缀。倒着考虑 $T$ 的每个后缀 $i$ ,求出在 ...
[后缀自动机+线段树合并]Codeforces GYM102411L【Lengths and Periods】题解
题目概述给一个字符串 $S$ ,选一个子串 $T$ ,使 ${T\over T-Border(T)}$ 最大。解题报告每个串的Border并不好考虑,但是可以考虑枚举Border,然后去找子串。...
[离线+后缀自动机+LCT]2022牛客暑期多校训练营(加赛)C【Cmostp】题解
题目概述Cmostp解题报告建出SAM,考虑离线,每次添加一个前缀节点 $p_i$ 的时候,就是把 $p_i$ 到 $fail$ 树根路径上的节点的最右终止端点改为 $i$ 。查询 $[L,R]...
[后缀自动机parent树+虚树]2022牛客暑期多校训练营1 B【Spirit Circle Observation】题解
题目概述Spirit Circle Observation解题报告找性质题最烦了.jpg。首先建SAM,考虑一个直观的做法。直接考虑枚举SAM里的节点,然后在节点上考虑 $a999\cdots$...
[后缀自动机+拓扑]LOJ3049【「十二省联考 2019」字符串问题】题解
题目概述LOJ3049解题报告把串反过来,那么 $B$ 是 $A$ 前缀就变成 $B$ 是 $A$ 后缀,也就是 $B$ 是 $A$ 在SAM上的parent树祖先,或者B和A在SAM同一个节点...
[广义后缀自动机]2021 ICPC 澳门 I【LCS Spanning Tree】题解
题目概述LCS Spanning Tree解题报告听说这题卡倍增SA,表示强烈谴责😡(不过我没想到SA怎么做)。由于需要求任意两个字符串之间的最长公共子串,因此考虑广义SAM,在构造时,记录一下...