文章分类 -  字符串、KMP、RK、BM、Sunday、AC自动机、后缀数组

1
摘要:很郁闷啊,太笨了。。。#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ #ifndef ONLINE_JUDGE freopen("indata.txt", "r", stdin); #endif int n; while(scanf("%d", &n) != EOF)... 阅读全文
posted @ 2010-11-14 21:27 菜到不得鸟 阅读(551) 评论(0) 推荐(0)
摘要:这题我不释放trie的空间,结果MLE了一次。。。#include <stdio.h>#include <string.h>#define MAXKIND 129#define MAXN 1005#define MAXLEN1 55#define MAXLEN 2000005#define MAXQSIZE 500005typedef struct TNode{ TNode... 阅读全文
posted @ 2010-09-04 21:55 菜到不得鸟 阅读(393) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#define MAXKIND 129#define MAXN 505#define MAXLEN 10005#define MAXQSIZE 500005typedef struct TNode{ TNode() { id=-1; fail=NULL; memset(next,0,sizeof(ne... 阅读全文
posted @ 2010-09-04 19:01 菜到不得鸟 阅读(259) 评论(0) 推荐(0)
摘要:AC自动机模板。。。#include <stdio.h>#include <string.h>#define MAXKLEN 55#define MAXDLEN 1000005#define MAXQSIZE 500005typedef struct TNode{ TNode() { count=0; fail=NULL; memset(next,NULL,sizeof(n... 阅读全文
posted @ 2010-09-04 01:19 菜到不得鸟 阅读(160) 评论(0) 推荐(0)
摘要:KMP算法字符串匹配算法:KMP学习心得http://www.slyar.com/blog/kmp.html手算KMP匹配的Next值和Nextval值http://www.slyar.com/blog/kmp-next-nextval.html字符匹配 真正理解KMP算法的力量 ( 修正)http://blog.csdn.net/arena_zp/archive/2007/06/05/16384... 阅读全文
posted @ 2010-08-31 19:11 菜到不得鸟 阅读(324) 评论(0) 推荐(1)
摘要:转自 http://blog.csdn.net/touzani/archive/2007/05/30/1632149.aspx字符串匹配(String matching)问题的形式定义: 假设文本(Text)是一个长度为n的数组T[1…n], 模式(Pattern)是一个长度为m≤n.的数组P[1..m];. 又假设P和T中的元素都属于有限字母表Σ中的字符。P和T常... 阅读全文
posted @ 2010-08-31 19:09 菜到不得鸟 阅读(5820) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#define MAXLEN 16000005char str[MAXLEN];int alpha[26];bool exist[MAXLEN];int main(){ int T,n,cas,nc,len,i,j,p; scanf("%d",&T); for(cas=0; cas<T;... 阅读全文
posted @ 2010-08-29 21:26 菜到不得鸟 阅读(271) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#define MAXN 1005char str[MAXN],pat[MAXN];int nextval[MAXN];void getNextval(int len){ int j=0,k=-1; nextval[0]=-1; while(j<len) { if(k==-1 || pat[j]... 阅读全文
posted @ 2010-08-29 01:13 菜到不得鸟 阅读(106) 评论(0) 推荐(0)
摘要:和3080几乎一样#include <stdio.h>#include <string.h>#define MAXN 4002#define MAXLEN 205char ans[MAXLEN],shot[MAXLEN],in[MAXN][MAXLEN];inline void solve(char *stry,int n){ int i; for(i=1; i<n;... 阅读全文
posted @ 2010-08-28 23:16 菜到不得鸟 阅读(169) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 102#define MAXLEN 205char in[MAXN][MAXLEN],tmp[MAXLEN],shot[MAXLEN];inline bool solve(int n,char *pat){ int i,j,t... 阅读全文
posted @ 2010-08-28 22:40 菜到不得鸟 阅读(156) 评论(0) 推荐(0)
摘要:方法1,KMP 16MS#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 62#define MAXM 12char ans[MAXN],shot[MAXN],in[MAXM][MAXN];int nextval[MAXN];void getNextval(char *pat... 阅读全文
posted @ 2010-08-28 16:19 菜到不得鸟 阅读(207) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXT 1000005#define MAXW 10005char str[MAXT],pat[MAXW];int next[MAXW];void getNext(int len){ int j=0,k=-1; next[0]=-1;... 阅读全文
posted @ 2010-08-28 00:10 菜到不得鸟 阅读(143) 评论(0) 推荐(0)
摘要:http://acm.fzu.edu.cn/problem.php?pid=1481就是要匹配出模式串。#include <stdio.h>#include <string.h>#define MAXLEN 205*3char str[MAXLEN],pat[MAXLEN],t[MAXLEN];int nextval[MAXLEN];void getNextval(int ... 阅读全文
posted @ 2010-08-27 18:59 菜到不得鸟 阅读(131) 评论(0) 推荐(0)
摘要:方法1,31MS#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXLEN 200005#define MOD 10007char str[MAXLEN];int idx[MAXLEN];int main(){ int T,len,i,j,k,g; scanf("%d",&... 阅读全文
posted @ 2010-08-27 18:56 菜到不得鸟 阅读(352) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXN 400005char name[MAXN];int next[MAXN];bool first;void getNext(int len){ int j=0,k=-1; next[0]=-1; while(j<len) ... 阅读全文
posted @ 2010-08-27 14:22 菜到不得鸟 阅读(116) 评论(0) 推荐(0)
摘要:http://acm.fzu.edu.cn/problem.php?pid=1901#include <stdio.h>#include <string.h>#define MAXN 1000005char str[MAXN];int next[MAXN],ans[MAXN];void getNext(int len){ int j=0,k=-1; next[0]=-1; ... 阅读全文
posted @ 2010-08-27 14:22 菜到不得鸟 阅读(138) 评论(0) 推荐(0)
摘要://188MS#include <stdio.h>#define MAXN 1000005char str[MAXN];int next[MAXN];void getNext(int len){ int j=0,k=-1; next[0]=-1; while(j<len) { if( k == -1 || str[j] == str[k] ) { ++j; ++k; next[j... 阅读全文
posted @ 2010-08-27 14:21 菜到不得鸟 阅读(132) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#define MAXN 1000005char str[MAXN];int next[MAXN];void getNext(int len){ int j=0,k=-1; next[0]=-1; while(j<len) { if( k == -1 || str[j] == str[k] ) ... 阅读全文
posted @ 2010-08-27 14:21 菜到不得鸟 阅读(203) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#define MAXN 1000005#define MAXM 10005int a[MAXN],b[MAXM],next[MAXM];void getNext(int len){ int j=0,k=-1; next[0]=-1; while(j < len) { if( k == -1 |... 阅读全文
posted @ 2010-08-27 14:19 菜到不得鸟 阅读(212) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <string.h>#define MAXN 100005char str1[MAXN],str2[MAXN];int next[MAXN];void getNext(char *s,int len){ int j=0,k=-1; next[0]=-1; while( j < len ) { if(k == -1 ... 阅读全文
posted @ 2010-08-27 14:14 菜到不得鸟 阅读(543) 评论(0) 推荐(0)

1