dp[i][j] 表示长度为 i 的前缀到达第 j 个节点的最小更改数目。
很显然有dp[0][0] = 0;
dp[ i ][ j ] = min(dp[ i ][ j ],dp[i-1][k] + (j == k ? 0 : 1)),当且仅当j,k满足下列条件时。
j 不为某条模式串的末节点 且 j 到 root 的由失败指针组成的路径上无末节点。
j 是k的儿子节点 或者 j 的父节点可由 k 沿着失败指针找到。
#include
#include
#include
#include
#include
#include
#include
#include
#include