关于#7,8,9三个点
查看原帖
关于#7,8,9三个点
743048
ran_qwq楼主2023/7/9 08:53

为什么我一遍 KMP 就过了?

for(int i=2,j=0;i<=m;i++)
{
	while(j&&b[j+1]!=b[i]) j=ne[j];
	if(b[j+1]==b[i]) j++;
	ne[i]=j;
}
for(int i=1,j=0;i<=n;i++)
{
	while(j&&b[j+1]!=a[i]) j=ne[j];
	if(b[j+1]==a[i]) j++;
	if(j==m) ans++,j=ne[j];
}
2023/7/9 08:53
加载中...