"传送门" 我一开始的想法是直接去求后面的$lcp(T_i,T_j)$,但是我不会…… 有一条性质:两个后缀的$lcp$就是他们在$parent$树上的$LCA$,而且出题人给这个式子其实是有目的的……我们把式子拆开,对于每一条边,我们赋一个权值为$l[i] l[fa[i]]$,这样的话我们只要求出 ...
分类:
其他好文 时间:
2019-01-12 22:56:59
阅读次数:
241
我们先求出该字符串的$SA$和$Ht$ 然后分类讨论 $T=0$时,每次去掉$Ht$往后扫就行 $T=1$时,我们考虑$lcp$对答案的影响 既然用到$lcp$,那就要用$ST$表维护 左端点固定时,随右端点的增大,区间$\min$单调不升 我们就可以用二分+限制右端点的方式统计某个后缀的前缀的贡献 ...
分类:
其他好文 时间:
2019-01-05 12:07:10
阅读次数:
173
~~1A真舒服。~~ 喜闻乐见的树链剖分+SA。 一个初步的想法就是用树链剖分,把两个字符串求出然后hash+二分lcp。。。不存在的。 我们用树链剖分拼出两个字符串(用树剖拼出的这两个字符串,一定是DFS序上一个一个区间拼在一起的,我们记录这些区间的左右端点。)因为考虑到这个字符串是有序的,我们需 ...
分类:
其他好文 时间:
2019-01-02 23:25:51
阅读次数:
336
码农题啊 上来先无脑一个$SA$的板子,求出$SA$和$het$数组 我们只需要从$sa[i]\in[a,b]$的所有$i$中找到一个$i$使得$sa[i]$和$rk[c]$之间的最小值最大就好了 但是还必须得满足$sa[i]+lcp 1 include include include define ...
分类:
其他好文 时间:
2019-01-01 21:10:02
阅读次数:
199
这个题一看就是为后缀家族设计的 我们看到我们要求的这个柿子 $$\sum_{i=1}^n\sum_{j=i+1}^nT_i+T_j 2\times lcp(T_i,T_j)$$ 显然的是前面的那些东西是个定值 就是保证每一个长度都会被其他长度算到,也就是算到$n 1$次 于是把前面那些东西拿出来就是 ...
分类:
其他好文 时间:
2019-01-01 21:08:31
阅读次数:
191
解法一:后缀数组 听说后缀数组解第k小本质不同的子串是一个经典问题。 把后缀排好序后第i个串的本质不同的串的贡献就是$n sa[i]+1 LCP(i,i 1)$然后我们累加这个贡献,看到哪一个串的时候,这个贡献的和大于等于k,然后答案就在这个串里了,然后枚举就行了。 那么第k小子串该怎么办? 我们考 ...
分类:
编程语言 时间:
2018-12-31 23:43:17
阅读次数:
257
后缀数组找本质不同第k大子串:考虑属于每个后缀的自己的子串(这个子串的第一个出现位置) 后缀排序,每个后缀贡献的右端点是[height[i]+1, len[i]],而且后缀的顺序走下去,在走每个后缀的子串,恰好就是字典序的顺序 二分位置,找到长度,建反串,lcp找找即可。 ...
分类:
其他好文 时间:
2018-12-25 21:45:45
阅读次数:
119
题面 题解 $ \because \sum_{1 \leq i < j \leq n} i + j = \frac{n(n-1)(n+1)}2 $ 所以只需求$\sum lcp(i,j)$即可。 $ \because lcp(i,j)=\min_{rank[i] \leq k \leq rank[j ...
分类:
其他好文 时间:
2018-12-24 16:18:24
阅读次数:
143
rt 明明能哈希为什么要KMP/AC自动机/后缀数组/后缀自动机/后缀树呢??????? 【XSY2361】LCP 给定串 S,m 组询问 (X, Y, L, R): 求 S[X:Y] 与 S[L:R] 的最长公共前缀. 1 #include<algorithm> 2 #include<iostre ...
分类:
其他好文 时间:
2018-12-14 13:01:33
阅读次数:
172
"传送门" 这题tm把AC自动机叉掉了,,, 只能考虑别的做法 把所有串连在一起,不同串的交界处加入一些不同的字符,然后求出sa数组和height数组,现在一个询问的答案就是和那个询问串的lcp正好为询问串长度的原串个数,而这在把后缀排好序后是一个区间,每个原串答案为包含这个原串的某个点的区间个数 ...
分类:
其他好文 时间:
2018-12-11 11:29:03
阅读次数:
186