kmp超级版
来源:互联网 发布:万圣节面具淘宝 编辑:程序博客网 时间:2024/05/05 12:14
#include<stdio.h>
int
N,M,a[1000010],b[10010],next[10010];
void
getnext()
{
int
i=0,j=-1;next[0]=-1;
while
(i!=M)
{
if
(j==-1||b[i]==b[j])
{
i++;j++;
if
(b[i]!=b[j])
next[i]=j;
else
next[i]=next[j];
}
else
j=next[j];
}
}
int
kmp()
{
int
i=0,j=0;
while
(i!=N&&j!=M)
{
if
(a[i]==b[j])
{
i++;j++;
}
else
{
if
(next[j]==-1)
{
++i;j=0;
}
else
j=next[j];
}
}
if
(j==M)
return
i-j+1;
else
return
-1;
}
int
main()
{
int
T;
scanf
(
"%d"
,&T);
while
(T--)
{
scanf
(
"%d%d"
,&N,&M);
for
(
int
i=0;i<N;i++)
scanf
(
"%d"
,&a[i]);
for
(
int
i=0;i<M;i++)
scanf
(
"%d"
,&b[i]);
for
(
int
i=0;i<M+1;i++)
next[i]=0;
getnext();
printf
(
"%dn"
,kmp());
}
return
0;
}
- kmp超级版
- 超级简单的理解kmp算法中的next的计算
- 超级玛丽增强版
- 超级乘方【修正版】
- IE9超级测试版
- 1369 窗口超级版
- 窗口(超级版)
- VC版超级记事本
- ImageLoader超级详细版
- (转)KMP算法实现。超级赞!见过的最容易理解的
- (转)KMP算法实现。超级赞!见过的最容易理解的
- KMP之完全版
- KMP算法(改进版)
- KMP算法 -java版
- java版KMP算法
- KMP
- KMP
- KMP
- ARM汇编伪指令介绍
- hdu 1711 朴素kmp
- 【数学】约瑟夫问题
- TMS320C55x的寄存器
- 添加sudo用户
- kmp超级版
- SQL优化--处理上百万条的数据库如何提高处理查询速度
- 稳定压倒的一切:创新
- hdu 2222 ac自动机模版
- 原作者未知 Flash Webgame 开发架构与心得
- dalvikvm
- 学习MongoDB--(4-1):MongoDB查询(基本查询条件操作符介绍)
- QQC++笔试相关
- 关于默认构造函数的几个错误认识