博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3461:Oulipo——题解
阅读量:6264 次
发布时间:2019-06-22

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

KMP板子,好久以前学过了,直接把板子粘上去即可。

#include
#include
using namespace std;char s1[1000001];char s2[10001];int nxt[10001]={
0};void getnext(int m){ int j=0; for(int i=2;i<=m;i++){ while(j!=0&&s2[j+1]!=s2[i])j=nxt[j]; if(s2[j+1]==s2[i])j++; nxt[i]=j; } return;}int ans;void KMP(int n,int m){ int j=0; for(int i=1;i<=n;i++){ while(j!=0&&s2[j+1]!=s1[i])j=nxt[j]; if(s2[j+1]==s1[i])j++; if(j==m){ ans++; j=nxt[j]; } } return;}int main(){ int t; scanf("%d",&t); while(t--){ ans=0; memset(nxt,0,sizeof(nxt)); scanf("%s%s",s2+1,s1+1); int n=strlen(s1+1),m=strlen(s2+1); getnext(m); KMP(n,m); printf("%d\n",ans); } return 0;}

 

转载于:https://www.cnblogs.com/luyouqi233/p/7856238.html

你可能感兴趣的文章
【leetcode】Decode Ways
查看>>
SLES documentation
查看>>
Python的metaclass、`__new()__`、单例模式
查看>>
在CentOS7上安装Zabbix3.0
查看>>
066、Weave如何与外网通信?(2019-04-09 周二)
查看>>
ASP常用函数
查看>>
tomcat绑定域名
查看>>
六数码问题(回溯)
查看>>
MongoDB主库和从库的数据大小不一致原因判断
查看>>
JavaScript之Date
查看>>
oracle sql命令行中上下左右使用
查看>>
Centos6快速yum lamp
查看>>
eucimage
查看>>
仿途牛导航
查看>>
CentOS 6.5下快速搭建ftp服务器[转]
查看>>
iOS多线程
查看>>
关于控制台程序和Win32程序
查看>>
JavaScript之tab面板切换
查看>>
Android自定义组件系列【3】——自定义ViewGroup实现侧滑
查看>>
08 分析函数
查看>>