View Code

void get_next()
{
int i=-1,j=0;
next[0]=-1;
while(j<m-1)
{
if(i==-1||b[i]==b[j]) { ++i; ++j; next[j]=i;}
else i=next[i];
}
}
int Index_KMP()
{
int i=0,j=0;
while(i<n && j<m)
{
if(a[i]==b[j]||j==-1) { ++i; ++j;}
else j=next[j];
}
if(j>=m) return i-m+1;
else return -1;
}

代码:

View Code

#include<iostream>
#define M 10001
#define N 1000001
using namespace std;
__int64 a[N],b[M];
int next[M];
int t,n,m;
void get_next()
{
int i=-1,j=0;
next[0] = -1;
while(j<m-1)
{
if(i==-1 || b[i]==b[j])
{
i++;
j++;
next[j] = i;
}
else i=next[i];
}
}

int Index_KMP()
{
int i=0,j=0;
while(i<n && j<m)
{
if(a[i] == b[j] || j==-1)
{
i++;
j++;
}
else j=next[j];
}
if(j>=m) return i-m+1;
else return -1;
}
int main()
{

int i,j;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);

for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<m;i++)scanf("%d",&b[i]);
get_next();
printf("%d\n",Index_KMP());

}
return 0;
}

转载于:https://www.cnblogs.com/FCWORLD/archive/2011/04/08/2009019.html

hdu1711(kmp纯模板)相关推荐

  1. KMP算法模板与解析

    全部数据结构.算法及应用课内模板请点击:https://blog.csdn.net/weixin_44077863/article/details/101691360 将KMP算法,就要先讲讲它是用来 ...

  2. 【模板】Trie KMP ACAM模板

    Trie KMP ACAM模板 虽然实际情况这个都得改 Trie 01Trie也差不多. const int MAXN = 1e6 + 10, SIZE = 26; struct Trie{int c ...

  3. hdu1711 KMP模板

    题意:      给你两个串,问你第二个串是从第一个串的什么位置开始完全匹配的.. 思路:       裸的KMP,也是我的第一个KMP,说下对KMP的理解吧,首先对于非优化的方法求匹配,时间复杂度应 ...

  4. POJ3461 【KMP(粗糙模板)】

    题意: 给你两个字符串p和s,求出p在s中出现的次数. 这道题,abababa中aba出现了3次. 有其他题是求abababa,aba就是2次. 需注意. KMP 模板 //#include<b ...

  5. 数学--数论--随机算法--Pollard Rho 大数分解算法(纯模板带输出)

    ACM常用模板合集 #include <bits/stdc++.h> using namespace std; typedef long long ll; ll pr; ll pmod(l ...

  6. KMP算法———模板

    做出KMP字符串匹配算法心情也是好好哒,萌萌哒. 感谢黄学长,感谢栋栋! #include<cstdio> #include<string> #include<iostr ...

  7. F - Oulipo(kmp经典模板题)!!!

    The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e ...

  8. 【SSM整合模板】- 纯模板

    文章目录 写在前面 pom.xml web.xml applicationContext.xml springmvc.xml c3p0.properties log4j.properties 写在前面 ...

  9. python【数据结构与算法】KMP算法模板(我吐了!)

    import math import cmath import sys import string import heapq import bisect from queue import Queue ...

最新文章

  1. How to protect video content (Flash Media Server)
  2. 对象的比较与排序(三):实现IComparableT和IComparerT泛型接口
  3. git提交输入密码_git提交到自己的服务器,每次都要输入密码
  4. JavaIO流加解密,AES对字符串加解密
  5. (124)FPGA面试题-ZYNQ的PS和PL端怎么交互的?
  6. 【数据库系统设计】关系数据库标准语言SQL(3)
  7. Windows重新生成UEFI引导,解决Windows蓝屏\BCD 0xc0000098
  8. Android Launcher研究与开发——桌面的初步定制化
  9. 运放做跟随器有什么要求
  10. 51单片机系列--蜂鸣器
  11. 【简单】字符串中最长元音字符串的长度
  12. Imx6ull 开发板通过Uboot使用网络启动系统
  13. chmod -R 777使用.
  14. windows11 显示文件后缀名
  15. Linux安装-gedit
  16. 家谱网站 php,家谱网站大全
  17. windows 10, v1903 正式版下载
  18. [转载]基于UML的需求分析和系统设计(完整案例和UML图形演示)
  19. 学习笔记 山外K60库图像解压函数原理(底层代码详解)
  20. Android 真机调试

热门文章

  1. 复合梯形公式与复合辛普森公式matlab_时尚女装套装的公式图纸分享
  2. 一天搞定DXUT三步曲之一:DXUT框架
  3. app error login.php,如何解决uniapp登录错误提示问题
  4. python requests网页爬取初探
  5. 计算机点关机无法关闭主机,老司机教你电脑关机关不了怎么办
  6. java表格模糊查询_使用java图形报表时,如何进行模糊查询
  7. 从git commit号码 revert_git revert amp; git rebase amp; commit 分支图
  8. 文本数据标注工具doccano【介绍最详细的一遍文章】
  9. 基于词典和朴素贝叶斯中文情感倾向分析算法
  10. matlab求解方程2x的5次,5元二次方程求解