oj:https://gxyzoj.com/d/gxyznoi/p/P107
SA+莫队
调了一天,真的心态炸了,总的来说这道题没有一步是好想的
首先,看到是多个字符串求一个是另一个子串,显然想到,讲这些字符串拼接起来,因为姓和名不能连在一起,所以可以在他们中间加一个没有出现的数字
接下来,首先考虑第一个问题
在拼接完后的子串上求出sa和height数组,那些地方能与模式串匹配成功?
可以考虑从模式串原位向两边扩展,此时,假设记当前串为x,若x与模式串的公共前缀大于等于模式串长度,则满足条件
因为两串之间的height是这一段的min,所以越往左或右,值就越小,具有单调性
所以,可以二分求出位置,记为l,r
接下来考虑如何求出这一个区间内的不同串的个数?
标签:子串,模式,height,解题,P2336,SCOI2012 From: https://www.cnblogs.com/wangsiqi2010916/p/18251350