CF竞赛题目讲解_CF235C(后缀自动机树+循环查找子串)
2022-10-02 12:37 作者:Clayton_Zhou | 我要投稿
https://codeforces.com/problemset/problem/235/C
题意:
已知一个文本串s。询问n个匹配的本质不同的循环同构在文本串s中出现了几次。
题解:
我们匹配完原串之后, 在头部删去一个字符然后又在末尾加上一个字符继续匹配。
使用SAM匹配的话,发现每次在parents树上向上移动节点相当于删去头部的字符,
在parents树上一直向上移动,使得节点长度刚好大于匹配串的长度。
要求本质不同的话,就直接在统计过答案的点打上标记,后面不统计即可。