2012年8月9日
摘要:
数据有两组漏了一个数,所以在读入之前要先赋值为0。 1 #include<cstdio> 2 #include<algorithm> 3 #define MAXN 100010 4 #define INF 0x7FFFFFFF 5 using namespace std; 6 struct SpalyTree { 7 int size, root; 8 int next[MAXN][2], pre[MAXN], key[MAXN]; 9 void Init() {10 size = root = 0;11 }12 void NewNode... 阅读全文
posted @ 2012-08-09 23:20
DrunBee
阅读(719)
评论(0)
推荐(0)
摘要:
给出n个单词,再给出一段包含m个字符的文章,找出有多少个单词在文章里出现过。1、对n个单词构造字典树。2、构造失败指针。设当前节点为X,失败指针指向Y。1。若当前节点X没有儿子t,则X的儿子t等价于Y的儿子t。2。若当前节点X有儿子t,t的失败指针指向Y的儿子t。Y与X有最长公共后缀。3、模式匹配。沿着next指针遍历。例:4个单词:0101、1011、1100、0010。在构造完失败指针后,顺便完善next指针,使得匹配时只需沿着next指针遍历,匹配时沿着fail指针遍历是为了统计出当前串包含的子串。模板题:【HDU】2222 Keywords Search【HDU】2896 病毒侵袭【H 阅读全文
posted @ 2012-08-09 18:24
DrunBee
阅读(3419)
评论(0)
推荐(1)
摘要:
1 #include<cstdio> 2 #include<cstring> 3 #include<queue> 4 #define MOD 1000000009 5 #define MAXN 2010 6 #define MAXM 210 7 using namespace std; 8 struct Trie { 9 bool end; 10 int fail, next[2]; 11 void Init() { 12 end = false; 13 fail = 0; 14 memset(next... 阅读全文
posted @ 2012-08-09 01:05
DrunBee
阅读(477)
评论(0)
推荐(0)
浙公网安备 33010602011771号