随笔分类 -  数据结构—回文自动机

摘要:建回文自动机,注意到一个回文串是可以通过一个长度小于等于这个串长度的一半的回文串添上一些字符然后复制得到的,也就是在自动机上向fa走,相当于treedp 每次都走显然会T,记录一个up,指向祖先中最下长度符合要求的回文后缀,这样每次找最多跳一次,所以是O(n)的,还有child的清空动态的做,也就是 阅读全文
posted @ 2018-11-25 08:18 lokiii 阅读(156) 评论(0) 推荐(0)
摘要:manacher魔改,hash+二分都好写,但是我魔改了个回文自动机就写自闭了orz 根本上来说只要把==改成!=即可,但是这样一来很多停止条件就没了,需要很多特判手动刹车,最后统计一下size即可 cpp include include include using namespace std; c 阅读全文
posted @ 2018-11-24 16:47 lokiii 阅读(153) 评论(0) 推荐(0)
摘要:回文自动机板子 或者是SAM+manacher+倍增,就是manacher求本质不同回文串(让f++的串),然后在SAM倍增查询对应点出现次数 cpp include include include using namespace std; const int N=300005; int n,ch[ 阅读全文
posted @ 2018-11-24 15:32 lokiii 阅读(154) 评论(0) 推荐(0)