传送门:QAQQAQ 定义nxt[u]=v表示从u开始不断沿着失配边跳到的第一个是标记点的端点v,那么我们再匹配时沿着last跳,每跳到一个last,它就一定对应一个模式串,所以效率是非常高的. 和KMP一样,我们只需检测ch[u][c]和ch[nxt[u]][c]的下一个字符是否相同,即可进行nxt数组的初始化,即: 从0~25枚举c,令v=ch[u][c] 则nxt[v]=ch[nxt[u]][c]. 这个nxt[v]并不能保证ch[u][c]就一定存在,所以还需要一个while循环一直跳直…