String

String

串串题

子序列:非连续取出一些字符

字串:取出原串一段区间字符

\(LIS\)(最长递增子序列)、\(LCS\)(最长公共子序列/子串)、\(LCP\)(最长公共前缀)、\(LPS\)(最长回文子序列/子串)、\(ED\)(最小编辑距离)

[省选模拟 2023] 日记(diary)

题意:

给定字符串 \(S\)\(T\)

任取前缀 \(P\) 后缀 \(Q\) ,均包含空串,若组成的字符串包含 \(T\) 则称有意义

问所有前后缀组合有多少为有意义的

注:对于一个确定的有意义字符串,不管是由什么组合得到的,都只算一次

\(solution\)

为了保证不算重,我们考虑把一个有意义的字符串统计到最长后缀上

对于 \(T \in P\)\(T \in Q\) 的情况单独计算即可

考虑 \(T \in P+Q\)

性质:

\(T\)\(Q\) 中部分为 \(T_Q\)

\(T_Q\)\(S\) 的某个前缀 \(P\)\(T\)\(LCS\) (字串)

此时 \(Q=LCS+S-P\)

posted @ 2023-04-09 15:13  xyzfrozen  阅读(41)  评论(0)    收藏  举报