首页 > TAG信息列表 > CTSC2012

luogu P4022 [CTSC2012]熟悉的文章

题面传送门 看到字符串子串匹配啪的一下很快啊一个SAM扔上去了 先把\(M\)个串的SAM建出来,发现其实不用广义SAM,隔一个#插就好了。 然后对于每个询问串就可以在SAM上先刨除每个\(i\)结尾在模式串中最长匹配多少。 显然L有单调性所以直接二分然后\(O(n^2)\)dp就可以得到答案了。 又有

[CTSC2012]熟悉的文章

壹、题目描述 ¶ 传送门 to Luogu. 贰、题解 ¶ 本文其实是思考过程,思路可能稍显混乱。 能够想到对标准串建广义 \(\rm SAM\),显然能对 \(l\) 进行二分,那么我们现在考察的就是,对于一个 \(l\),如何校验其正确性?或者说,存在怎样的最优分割能让我们分割出来的串尽可能进行匹配? 确实不

[CTSC2012]熟悉的文章 [广义后缀自动机,二分+单调队列优化dp]

题意: 给定多个主串,每次将询问串拆分成多个连续子串,如果该子串在主串中出现,那么这段是合法的,要求一个最大的 \(L\) 使得合法的长度 \(\geq\) 询问串长度的 \(90\%\) 我们发现 \(L\) 是可以二分的,我们再考虑怎么 \(check\) 这个是否合法,对于一个 \(L\)。 我们设 \(mx_i\) 为 \(i\)

Luogu P4022 [CTSC2012]熟悉的文章

广义 \(SAM\) + 二分答案 + 单调队列优化 \(DP\) 对作文库建广义 \(SAM\) ,然后求出作文每个位置的最长匹配 \(d[i]\),然后二分答案 \(md\),然后 \(DP\) ,\(f[i]\) 表示到 \(i\) 的最大匹配长度,有 \(f[i]=\max(f[j]-j+i),j\in[i-d[i],i-md]\),最后检查 \(f[n]\geq 0.9\times len\) #inc