[JZOJ5027]【NOI2017模拟3.25】历史行程
题目大意给一个长度为n的01字符串s,还有m个询问,每个询问有两个数l,r,问s的前缀s[1..l],s[1..l+1]…s[1..r]中的任意两个前缀的最长公共后缀是多少。
n,m<=100000分析首先可以把s反过来,这样就是问后缀的lcp了,询问记得也要反过来。
考虑弄出一个sa。
对于一个询问[l,r],答案是什么呢?
就是rank[l]..rank[r]按大小排后,即l~r所有位置
原创
2017-03-29 22:08:43 ·
924 阅读 ·
0 评论