博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【模板】kmp
阅读量:5862 次
发布时间:2019-06-19

本文共 882 字,大约阅读时间需要 2 分钟。

#include
#include
#include
#define sz 1000010using namespace std;int fail[sz];char a[sz], b[sz];inline void init(int n) { int j = 0; fail[1] = 0; for(int i = 2; i <= n; i++) { while(j>0 && b[i] != b[j+1]) j = fail[j]; if(b[i] == b[j+1]) j++; fail[i] = j; }}inline void match(int n, int m) { int j = 0; for(int i = 1; i <= n; i++) { while(j>0 && a[i] != b[j+1]) j = fail[j]; if(a[i] == b[j+1]) j++; if(j == m) printf("%d\n",i-m+1), j = fail[j]; }}inline void print(int n) { for(int i = 1; i <= n; i++) printf("%d ",fail[i]);}int main() { scanf("%s%s",a+1, b+1); int lena = strlen(a+1), lenb = strlen(b+1); init(lenb); match(lena, lenb); print(lenb); return 0;}

 我学了一下午kmp,结果某人说noip考的字符串匹配hash就可以搞定QAQ

 

转载于:https://www.cnblogs.com/Hwjia/p/9509687.html

你可能感兴趣的文章
刨根问底区块链 —— 基础篇
查看>>
php 直接调用svn命令
查看>>
建立低权限的ftp帐号
查看>>
htpasswd
查看>>
Android窗口机制(三)Window和WindowManager的创建与Activity
查看>>
Android 编译出错解决
查看>>
iOS--The request was denied by service delegate (SBMainWorkspace) for reason:
查看>>
Android 打开WIFI并快速获取WIFI的信息
查看>>
Spring boot 入门篇
查看>>
【IOS开发】GDataXML解析XML
查看>>
Iptables
查看>>
我的友情链接
查看>>
Flaapy Bird项目笔记
查看>>
GridView多行多列合并单元格(指定列合并)
查看>>
什么是DDOS攻击?怎么防御?
查看>>
状态模式(State Pattern)
查看>>
log4j日志框架学习
查看>>
function 与 => 的区别
查看>>
VBScript:写excel的例子
查看>>
TYVJ P1077 有理逼近 Label:坑,tle的好帮手 不懂
查看>>