摘要: "传送门" 这个题就是求 $n$ 个差分数列的最长公共子串,为啥是差分数列呢,因为如果一个串都加一个数会变成另一个串,那么这两个串的差分数列除了第一项都相等。 所以把 $n$ 个串的差分数列除去第一项后用不同的数间隔然后拼起来,对应位置打上标记记录属于哪个串,然后求后缀数组。 那么如何求 $n$ 个 阅读全文
posted @ 2020-04-14 16:21 BakaCirno 阅读(125) 评论(0) 推荐(0)
摘要: "传送门" 用后缀数组写这个题太反智了,因为是 $O(n^2)$ 的统计答案,所以要用单调栈来做优化,比广义后缀自动机麻烦太多了,这个题就是广义后缀自动机的板子题。 由此可见后缀数组还是处理单字符串或者处理多字符串的长度问题好用一些,这种处理多字符串的方案统计问题就算了 后缀数组代码 阅读全文
posted @ 2020-04-14 14:06 BakaCirno 阅读(148) 评论(0) 推荐(0)
摘要: "传送门" 回来复习一下后缀数组,感觉之前不理解的地方突然都能理解了 w using namespace std; const int N=1e5+10; char s[N]; int n,m,sa[N 2],rk[N 2],c[N],tp[N 2],ht[N 2],ans; void getsa( 阅读全文
posted @ 2020-04-14 01:56 BakaCirno 阅读(125) 评论(0) 推荐(0)