KMP 剪花布条 hdu 2078
来源:互联网 发布:qsfp28光模块端口 编辑:程序博客网 时间:2024/05/29 16:43
额……这个题不难,但是因为有个地方制仗了,所以特地写出来……
#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <cmath>using namespace std;const int maxn = 1e3+10;char s[maxn],p[maxn];int Next[maxn];int num=0;void GetNext(char *p){ memset(Next,0,sizeof(Next)); Next[0]=-1; int k=-1; int i=0; int plen=strlen(p); while(i<plen-1)//可以有重叠部分,改为plen-1,就不能啦 { if(k==-1||p[i]==p[k]) { k++; i++; Next[i]=k;//下一个的之前的最大前缀后缀 } else k=Next[k]; }}int kmp(char *s,char *p){ GetNext(p); int i=0,j=0; int slen=strlen(s); int plen=strlen(p); while(i<slen) { if(j==plen) {num++;j=Next[j];} if(j==-1||p[j]==s[i]) { i++; j++; } else j=Next[j]; } if(j==plen) {num++;} return num;}int main(){ while(scanf("%s",s)!=EOF) { if(s[0]=='#') break;//WA了好几发,因为这里写成了s=="#",兄弟,字符串之间可以这样比较么............ scanf("%s",p); num=0; printf("%d\n",kmp(s,p)); } return 0;}
阅读全文
0 0
- KMP 剪花布条 hdu 2078
- HDU 2087 剪花布条 kmp
- HDU 2087 剪花布条(KMP)
- HDU 2087 剪花布条 KMP
- hdu 2087 剪花布条(KMP)
- HDU 2087 剪花布条 裸KMP
- HDU 2087 剪花布条 KMP
- hdu 2087 剪花布条(KMP)
- HDU 2087 剪花布条(KMP)
- HDU 2087 剪花布条(KMP:贪心)
- HDU-2087 剪花布条(kmp)
- HDU 2087 剪花布条 KMP入门
- HDU 2087 剪花布条 //简单kmp
- hdu 2087 剪花布条 KMP
- HDU 2087 剪花布条 KMP题解
- hdu 2087 剪花布条(数据结构:KMP)
- hdu 2087 剪花布条 KMP
- HDU - 2087 剪花布条 (KMP)
- kotlin基础语法
- Python外观模式
- MSTR
- 使用Spring的@Scheduled实现定时任务
- apk利用命令行签名
- KMP 剪花布条 hdu 2078
- 数据流中的中位数(java版)
- sqlserver查询报从char数据类型到datetime数据类型的转换导致datetime值越界
- 计算广告干货整理
- mysql客户端连接不上,但是网页端的可以
- Jenkins 搭建持续集成环境
- 显著性检测方法SR(谱残余方法)
- 新华社客户端文章:区块链金融:新蓝海还是新挑战
- 机器码农:深度学习自动编程