[板子]KMP
KMP板子,你甚至可以用这个板子A掉luogu的3375
基础懒得说,要求一个Next数组。
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std; char a[],b[];
int nexta[]; int main()
{
int na,nb,i,j,k,w,e,s; scanf("%s%s",a,b);
na=strlen(a);
nb=strlen(b); for(i=;i<nb;i++)
{
j=nexta[i];
while(j!=&&b[i]!=b[j])
{
j=nexta[j];
}
if(b[i]==b[j])
{
nexta[i+]=j+;
}
else
{
nexta[i+]=;
}
}
j=;
for(i=;i<na;i++)
{
while(j!=&&a[i]!=b[j])
{
j=nexta[j];
}
if(a[i]==b[j])
{
j++;
}
if(j==nb)
{
printf("%d\n",i-nb+);
}
} for(j=;j<=nb;j++)
{
printf("%d ",nexta[j]);
}
return ;
}
[板子]KMP的更多相关文章
- hihoCoder #1015 : KMP算法【KMP裸题,板子】
#1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...
- kmp板子
kmp 容易理解板子 详情见知乎 算法思想 对模式串求PMT,但实际上nxt数组是PMT向前移动一位 nxt数组含义:记母串为m[],模式串为p[]; m[i]与p[j]比较失配,需要比较m[i]与p ...
- KMP板子(其实还没完全懂...)
KMP模板 1.next数组的实际含义 next数组从-1开始,主串a,子串b,next[j]=k,满足b[0,k-1]==b[j-k,j-1],k同时也为b子串前缀的下标,j为b子串后缀的下标 ge ...
- HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- KMP 初级板子 待更新
复杂度 O(n+m) 这个博主写的蛮不错的 http://www.cnblogs.com/SYCstudio/p/7194315.html 1.本文中,所有的字符串从0开始编号2.为了在程序中表示方便 ...
- KMP板子+Trie板子
KMP算法是一个字符串匹配算法,最直白的用法就是在一个长度为n的字符串T中查找另一个长度为m字符串P的匹配(总之就是用于文本中进行单个字符串的匹配). 对于这个问题,暴力算法是很好做的,直接对于T的每 ...
- 扩展kmp板子
using namespace std; #include <cstdio> #include <cstring> #include <algorithm> #de ...
- 关于Trie KMP AC自动机
个人认为trie,KMP,AC自动机是思想非常明确的,AC自动机的性质是与KMP算法的思想类似的(失配后跳转) 而KMP是线性的,AC自动机是在tire树上跑KMP,为方便那些不会用指针的小朋友(我也 ...
- AC自动机总结及板子(不带指针)
蒟蒻最近想学个AC自动机简直被网上的板子搞疯了,随便点开一个都是带指针的,然而平时用到指针的时候并不多,看到这些代码也完全是看不懂的状态.只好在大概理解后自己脑补(yy)了一下AC自动机的代码,居然还 ...
随机推荐
- Python之整数类型
整数:18,73,84 每一个整数都有如下的功能:class int(object): """ int(x=0) -> int or long int(x, bas ...
- [已转移]JavaScript事件---DOM事件流
该文章已转移到博客:https://cynthia0329.github.io/ 事件发生时会在元素节点与根节点之间按照特定的顺序传播,路径所经过的所有节点都会收到该事件 这个传播过程即DOM事件流. ...
- @游记@ CSP2019
目录 @day -??@ @day -1@ @day 0@ @day 1@ @day 2@ @day ??@ @day ??+1@ @day -??@ 和 yhn 学长在校外偶遇. 聊了一些.他说现在 ...
- IMEI校验思路及代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【NS2】新协议的添加示例(转载)
1. 下表显示了 NS2 和 TCP/IP.OSI七层网络结构的大致对应关系(这个表很有好处哦) TCP NS2 OSI 应用层 应用层 应用层 表示层 会话 ...
- @atcoder - CODE FESTIVAL 2017 Final - J@ Tree MST
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定 N 个点,第 i 点有一个点权 Xi,再给定一棵边带权的树 ...
- 归并排序及应用 (nyoj 117 求逆序数)
求逆序数 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中 ...
- mysql 中 DATE_ADD(date,INTERVAL expr type)
在Hiredmyway中: SELECT if(LENGTH(company_name) > 30, concat(SUBSTRING(company_nam ...
- Hbase数据模型 行
- es6 默认参数、rest参数、扩展运算符
1.默认值 现在可以在定义函数的时候指定参数的默认值了,而不用像以前那样通过逻辑或操作符来达到目的了. function sayHello(name){ //传统的指定默认参数的方式 var name ...