杂题

题意

给定串\(S\),多次询问,给定串\(T\),求\(S\)有多少子串与\(T\)的汉明距离为\(1\)

做法

SA
对于\(T\)的每个后缀,求出\(S\)的后缀集合,其前缀为该后缀,后缀排序后是一个区间,\(suf_i\)可由\(suf_{i+1}\)递推过来
对于每个前缀,求出\(S\)的后缀集合,其前缀为该前缀,也可以二分
对于每个前缀\(i-1\),枚举不同的字符,可以得到新前缀的区间。再利用\(suf_{i+1}\),二分出区间

posted @ 2020-06-17 09:59  Grice  阅读(58)  评论(0编辑  收藏  举报