最近模拟赛的题,给的题解里面总会出现这几个字,就给学了
洛谷 P5826 【模板】子序列自动机
用人话来翻译一下:多次询问一个字符串是不是给定的串的子序列。
原理的话其实跟一个 DP 差不多,设给定的字符串为 s s s,给定的字符集为 Z Z Z, n x t [ i ] [ c h ] nxt[i][ch] nxt[i][ch] 表示第 i i i 个字符之后(不包括位置 i i i)字符 c h ch ch 所在的最接近 i i i 的位置。那么转移方程也很好想
n x t [ i ] [ j ] = n x t [ i + 1 ] [ j ] ( s [ i + 1 ] ≠ j ) nxt[i][j] = nxt[i+1][j](s[i+1] \ne j) nxt[i][j]=nxt[i+1][j](s[i+1]=