[目前未找到题目]扩展KMP模板

时间:2022-09-04 17:24:01
procedure build_next;
begin
lena:=length(a);lenb:=length(b);
next[]:=lenb;next[]:=lenb-;
for i:= to lenb- do if b[i]<>b[i+] then
begin
next[]:=i;break;
end;
k:=;
for i:= to lenb-1 do
begin
p:=k+next[k]-;L:=next[i-k];
if i+L<=p then next[i]:=L else
begin
j:=p-i+;
if j< then j:=;
while (i+j<lenb)and(a[i+j]=b[j]) do inc(j);
next[i]:=j;k:=i;
end;
end;
end; procedure build_ex;
begin
if lena<lenb then minlen:=lena else minlen:=lenb;
ex[]:=minlen;
for i:= to minlen-1 do if a[i]<>b[i] then
begin
ex[]:=i;break;
end;
k:=;
for i:= to lena-1 do
begin
p:=k+ex[k]-;L:=next[i-k];
if i+L<=p then ex[i]:=L else
begin
j:=p-i+;
if j< then j:=;
while (i+j<lena)and(j<lenb)and(a[i+j]=b[j]) do inc(j);
ex[i]:=j;k:=i;
end;
end;
end;

[目前未找到题目]扩展KMP模板的更多相关文章

  1. kmp模板 &amp&semi;&amp&semi; 扩展kmp模板

    kmp模板: #include <bits/stdc++.h> #define PB push_back #define MP make_pair using namespace std; ...

  2. 字符串匹配--扩展KMP模板

    对于一个字符串 s 以及子串 t ,扩展KMP可以用来求 t 与 s 的每个子串的最长公共前缀 ext [ i ],当然,如果有某个 ext 值等于 t 串的长度 lent ,那么就说明从其对应的 i ...

  3. HDU 6153 A Secret(扩展KMP模板题)

    A Secret Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 256000/256000 K (Java/Others) Total ...

  4. kmp与扩展kmp模板

    kmp 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include & ...

  5. HDU 2594 扩展kmp模板题

    题目大意: 给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀 #include <iostream> #include <cstdio> #include ...

  6. 扩展KMP模板

    注意:需要用特殊符号隔开 1 struct ExKmp{ void Init(){ memset(f,,sizeof(f)); memset(r,,sizeof(r)); } void Get_Fai ...

  7. 扩展kmp 模板

    算法可以参考http://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html 百度文库 #include<iostream> #inclu ...

  8. (模板)扩展kmp算法(luoguP5410)

    题目链接:https://www.luogu.org/problem/P5410 题意:有两个字符串a,b,要求输出b与a的每一个后缀的最长公共前缀.输出: 第一行有lenb个数,为b的next数组( ...

  9. A - A Secret -扩展KMP

    题目大意: 给你两个字符串A,B,现在要你求B串的后缀在A串中出现的次数和后缀长度的乘积和为多少. 题解: 扩展KMP模板题,将A和B串都逆序以后就变成了求前缀的问题了,扩展KMP求处从i位置开始的最 ...

随机推荐

  1. Singleton

    1.//懒汉模式 //天生线程不安全,但是效率高 public class Singleton { private static Singleton singleton; private Single ...

  2. 转载:Hadoop安装教程&lowbar;单机&sol;伪分布式配置&lowbar;Hadoop2&period;6&period;0&sol;Ubuntu14&period;04

    原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到, ...

  3. 深入理解CSS背景

    前面的话 背景和字体一样,是一个复合属性,而且它是一个使用频率很高的属性.在CSS3中,背景属性在保持以前用法的同时,增加了新的相关属性.本文将详细介绍关于背景的知识 背景颜色 背景色backgrou ...

  4. hibernate的第一个程序

    #建表语句 create database hibernate; use hibernate; create table user( id int primary key, name varchar( ...

  5. memcached的基本命令&lpar;安装、卸载、启动、配置相关&rpar;

    memcached的基本命令(安装.卸载.启动.配置相关):-p 监听的端口 -l 连接的IP地址, 默认是本机  -d start 启动memcached服务 -d restart 重起memcac ...

  6. C&plus;&plus; 函数映射使用讲解

    想想我们在遇到多语句分支时是不是首先想到的是 switc case 和 if else if ... 这2种方式在编码方面确实简单少,但是当分支达到一定数量后,特别是分支内部有嵌套大段代码或者再嵌套分 ...

  7. js浮点数的加减乘除

    ;(function(root, factory) { // Support AMD if (typeof define === 'function' && define.amd) { ...

  8. Linux时区详解

    全球24个时区的划分 相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究竟这24个时 ...

  9. struts2实现jQuery的异步交互

    struts2中jQuery的异步交互有两种方式: 1)是利用构造字符串的方式来实现: 使用该方法主要是在服务器端根据前端的请求,返回一个字符串信息,然后前端的jQuery通过解析该字符串信息得到对应 ...

  10. body-parser 用法

    1.下载 body-parser 模块  :   npm install body-parser 2.require body-parser 模块(引入),并用一个变量接收(此处栗子变量为 bodyp ...