KMP 自动机

KMP 自动机

定义状态 nxti,j 表示在 i 接一个字符 j 的最终匹配位置。

转移是显然的。

nxti,j=nxtfaili,j

注意 KMP 的字符集无关的,而 KMP 自动机依赖字符集大小。

struct Auto{
	char s[N];
	int n,nxt[N][26];
	void init()
	{
		n=strlen(s+1);
		int fail=0;
		for(int i=1;i<=n;i++)
		{
			int c=s[i]-'a';
			fail=nxt[fail][c];
			nxt[i-1][c]=i;
			for(int j=0;j<26;j++)
				nxt[i][j]=nxt[fail][j];
		}
	}
}
posted @   g1ove  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2023-10-08 10.7 杂题补做
点击右上角即可分享
微信分享提示