Q1 对于给定的字符串,求本质不同的子串数. A1 在加入 $s_l$ 时,考虑 $s[l:r]$ 的上一次出现是 $s[k:k+r-l]$,那么应该在线段树上 $[r,k+r-l]$ 这个区间 $+1$. 那么假设路径 $(x,y)$ 上的点都满足 $r_u=z$,且 $len[fa[x]]=a,\space len[y]=b$, 那么对线段树的贡献是一个类似平行四边形的加法,修改比较显然. 查询 $s[l:r]$ 的本质不同的子串数的话,在假如 $s[l]$ 后查询线段树的第 $r$ 个位置…