poj 3461 Oulipo(简单的kmp入门)
来源:互联网 发布:淘宝售后率高 编辑:程序博客网 时间:2024/05/30 13:42
就是完完全全用kmp算法来写的一道题,每当找到一个与模式串匹配的计下次数,然后以next数组后退继续寻找下一个
代码在这:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=1000010;char s[N];char p[N];int next[N];void fnext(){ int i,k; int n=strlen(p); next[0]=-1; for(i=1,k=-1;i<n;++i) { while(k!=-1&&p[i]!=p[k+1]) k=next[k]; if(p[i]==p[k+1]) k++; next[i]=k; }}int kmp(){ int sum=0; int n,m; int i,j; n=strlen(s); m=strlen(p); fnext(); for(i=0,j=-1;i<n;++i) { while(j!=-1&&s[i]!=p[j+1]) j=next[j]; if(s[i]==p[j+1]) j++; if(!p[j+1]) {sum++;j=next[j];} } return sum;}int main(){ int n; scanf("%d",&n); while(n--) { scanf("%s%s",p,s); int res=kmp(); printf("%d\n",res); } return 0;}
0 0
- poj 3461 Oulipo(简单的kmp入门)
- POJ 3461 Oulipo (kmp入门)
- POJ 3461 Oulipo(简单KMP)
- POJ 3461 Oulipo (简单kmp)
- POJ 3461 Oulipo(简单KMP)
- poj 3461 Oulipo(KMP)
- POJ 3461 Oulipo(KMP)
- POJ 3461 Oulipo---kmp
- POJ 3461 Oulipo KMP
- poj 3461 Oulipo (KMP)
- POJ 3461 Oulipo ( KMP )
- POJ 3461 Oulipo KMP
- POJ 3461 Oulipo / KMP
- Oulipo - POJ 3461 KMP
- 【KMP】 POJ 3461 Oulipo
- KMP---POJ 3461Oulipo
- POJ 3461 Oulipo (KMP)
- poj 3461 Oulipo kmp
- android 模仿ios 由下而上的弹出对话框 dialog
- Fragment提交transaction导致state loss异常
- VivoParc
- 域名解析流程简述
- LightOJ 1258
- poj 3461 Oulipo(简单的kmp入门)
- 素数判断(朴素、高效)
- SQLi Labs Lesson8
- java设计模式_UML类图(下)
- MJExtension使用指导
- ArcGIS无法移动要素,坐标或测量值超出范围的问题
- POJ:1458 Common Subsequence(LCS)
- hdoj 1503 Advanced Fruits (LCS 变形合并)
- hdu3518