后缀自动机
sckalrter
一个蒟蒻
展开
-
BZOJ4516: [Sdoi2016]生成魔咒
题意:给定n个将字符插至字符串尾的操作,求每次操作后本质不同的子串数。 题解: 一看“本质不同的子串”就知道是SAM啦,在建自动机时维护ans即可,注意数的值域过大要使用map。 #include<bits/stdc++.h> using namespace std; typedef long long ll; int read(){ int x=0,f=1; ch...原创 2018-07-24 16:14:44 · 129 阅读 · 0 评论 -
BZOJ3879: SvT
两子串的最长公共后缀就是在后缀树上他们的LCA的最长长度。 考虑将原串翻转,公共前缀变公共后缀。 建出原串后缀自动机,然后建出后缀树。 对于每次询问,我们建出其虚树,在虚树上DP即可。 注意到模数太大超过最大可能答案,我们不必取模。 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll;...原创 2018-09-07 19:18:00 · 224 阅读 · 0 评论