博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3461 还是两种方法
阅读量:5333 次
发布时间:2019-06-15

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

    上午我用了Rabin-Karp算法做的。基本的数据可以测试通过,但是一提交就WA。偶滴天啊,我不知道错在哪啊。。我是非专业的。。呜呜。找了半天找不出。算了。看人家都是用KMP做的,那我下午就用KMP写一个吧。一定把它拿下!!哼哼

   Rabin-Karp:

#include 
#include
#include
#include
using namespace std; #define M 16381*4733+1 int nCount; void Rabin_Karp(char*T,char* W,int d,int q ) {
//搜索W在T中的位置 //参数d:字母表的进制,即字母表的元素个数 //参数q:一个比较大的素数,只需d*q

 

KMP: AC的。

#include 
#include
#include
using namespace std; #define N 10001 #define M 1000001 int next[N]; int nCount; void get_next(char* str) {
int i=0,j=-1,len=strlen(str); next[i]=j; while(i
=0 && str[i]!=str[j]) j=next[j]; i++;j++; next[i]=j; } } void kmp_search(char *T,char *W) {
int i=0,j=0,len1=strlen(T),len2=strlen(W); while(i
=0 && T[i]!=W[j]) j=next[j]; i++;j++; if(j==len2) {
nCount++; j=next[j]; } } } int main() {
int n; char W[N]; char T[M]; freopen("acm.txt","r",stdin); scanf("%d",&n); getchar(); while(n--) {
scanf("%s",W); scanf("%s",T); memset(next,0,sizeof(next)); nCount=0; get_next(W); kmp_search(T,W); printf("%d\n",nCount); } return 0; }

 

转载于:https://www.cnblogs.com/Jason-Damon/archive/2012/04/03/2430831.html

你可能感兴趣的文章
用FragmentTabHost管理Fragment,实现页面切换
查看>>
每天一个linux命令(55):traceroute命令
查看>>
linux下的ssh——如何建立linux下的机器信任关系
查看>>
整理下最近的手抄纸
查看>>
数据结构(逻辑结构,物理结构,特点)
查看>>
归纳程序综合计算机实现自我编程,真的可以实现吗?
查看>>
JDK、JRE与JVM的关系
查看>>
A Tutorial on Clustering Algorithms
查看>>
柳汽项目 心得总结整理
查看>>
HDU 5358 多校第6场 First One
查看>>
2018-2019-2 20175224 实验三《敏捷开发与XP实验》实验报告
查看>>
HDU4515 小Q系列故事——世界上最遥远的距离
查看>>
HDU4666 Hyperspace(曼哈顿)
查看>>
第一阶段SCRUM冲刺 09
查看>>
大家看一下,网友对待事件的评论和当前政局的态度,不言而喻(这是关于伦敦奥运会的讨论)...
查看>>
面对对象程序设计_总结作业
查看>>
android中常用转义字符
查看>>
Poj3691(AC自动机+DP(简单题))
查看>>
Aizu0121 Seven Puzzle(bfs+康托展开)
查看>>
springmvc的xml文件位置
查看>>