HDU-1686(KMP)
来源:互联网 发布:婚礼相册mv制作软件 编辑:程序博客网 时间:2024/05/05 08:31
这道题目,主要是一定要利用上匹配的字符串.
以前都是搜到了就结束了,这次不行,搜到了,咱们用一下next[j](当j==M时)
我崩溃的是自己next[j]+1了...wa了一次 还有.没有加i++的时候一直TLE 因为aaaa aaaa无法处理,,,嘿嘿
所以大家仔细看看吧 我把重点的标出来
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>char str[1000100];char pat[10005];int N,M;int next[10005];void Next(){memset(next,0,sizeof(next));int temp;next[0]=0;for(int i=1;i<M;i++){temp=next[i-1];while(temp&&pat[temp]!=pat[i])temp=next[temp-1];if(pat[temp]==pat[i])next[i]=temp+1;elsenext[i]=0;}}int KMP(){int sum=0;int j=0;int i=0;while(i<N){if(str[i]==pat[j]){if(j==M-1){sum++;j=next[j];//不能加1i++;//注意i++要不然就TLE了}elsei++,j++;}else if(j==0)i++;else j=next[j-1];}return sum;}int main(){int T;scanf("%d",&T);getchar();while(T--){scanf("%s%s",pat,str);N=strlen(str);M=strlen(pat);Next();printf("%d\n",KMP());}return 0;}
- HDU 1686 Oulipo (kmp)
- HDU-1686(KMP)
- hdu 1686 kmp Oulipo
- hdu 1686 KMP
- KMP hdu-1686-Oulipo
- hdu 1686 KMP
- Hdu 1686 Oulipo[kmp]
- 初识kmp hdu 1686
- hdu 1686 Oulipo(KMP)
- HDU-1686-Oulipo(KMP)
- hdu 1686 Oulipo(KMP)
- hdu 1686 Oulipo(KMP)
- HDU 1686 Oulipo (KMP)
- HDU 1686 Oulipo(KMP)
- HDU - 1686 Oulipo (KMP)
- hdu 1686(kmp)
- HDU 1686 Oulipo(KMP)
- HDU 1686--Oulipo【KMP】
- Eclipse C C++ 中文语言包获取及安装MinGW
- 纪念开通博客
- c# 更改最大化按钮功能实现最大化时遮盖任务栏,点击Esc取消全屏
- UVA 138 Street Numbers
- 叶诗文得到了百万豪宅,价值三百多万
- HDU-1686(KMP)
- /usr/src/kernels/ 下没有当前内核文件夹 及 insmod错误Invalid module format
- 键盘驱动系列---JIURL键盘驱动 5
- ffmpeg开发指南
- 手机端和服务端交互
- 【ubuntu linux】 QT中使用MYSQL中文乱码解决方法
- Oracle BAM发送报警信息超长的解决方法
- string.h头文件解析
- 关于sizeof和strlen