单词统计的题目,给出一些单词,统计有多少单词在一个文本中出现,最经典的入门题了. AC自己主动机的基础: 1 Trie. 以这个数据结构为基础的,只是添加一个fail指针和构造fail的函数 2 KMP,不是直接运用KMP.而是须要KMP的思想.KMP思想都没有的话,理解这个算法会更加吃力的. 注意本题的单词会有反复出现的,一个单词仅仅能统计一次. 搜索了一下网上的题解.发现好多代码都是一大抄的啊.⊙﹏⊙b汗. 本博客的乃是原创代码.代码风格也是几乎相同固定的,转载请注明出处:http://bl…
点击打开链接题目链接 Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 42838    Accepted Submission(s): 13488 Problem Description In the modern time, Search engine came into the life of eve…
题意:给出n个文本和m个模板.求每一个文本中全部模板出现的总次数. 思路:Trie树权值记录每一个模板的个数.对于每一个文本跑一边find就可以. #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> #include<vector> #include<ma…
http://acm.hdu.edu.cn/showproblem.php?pid=5384 Problem Description Danganronpa is a video game franchise created and developed by Spike Chunsoft, the series' name is compounded from the Japanese words for "bullet" (dangan) and "refutation&q…
数单词 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 为了可以顺利通过英语四六级考试,如今大家每天早上都会早起读英语. LYH本来以为自己在6月份的考试中能够通过六级,但是没想到,成绩出来以后.竟然没有通过.所以他不得不付出很多其它的时间来学习英语. 要想通过六级.最主要的要求就是词汇量.为了可以更快的记住一些陌生单词.LYH有时会找一些英语文章来读. 今天早上.LYH又找了一篇文章.读之前.他突然萌生出一个想法:文章中哪些单词出现的次数最多呢? 输入 第一行…
题意:给出一个字符串和若干个模板,求出在文本串中出现的模板个数. 思路:由于有可能有反复的模板,trie树权值记录每一个模板出现的次数就可以. #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> #include<vector> #include<map&…
题目链接:pid=2222">点击进入 KMP对模式串进行处理.然后就能够方便的推断模式串是否在目标串中出现了:这显示适合一个模式串多个目标串的情况.可是假设模式串有多个,这时假设还用KMP则须要对每一个串都进行一次处理,显然不是非常合适.事实上这时候能够将全部模式串建成一棵trie树.然后採用相似于kmp的方法计算出failed指针,也就能够方便的进行匹配了.事实上这就是ac自己主动机的思想. 代码例如以下: #include<iostream> #include<cs…
AC自己主动机的模板题.因为输入的字符串中的字符不保证全为小写字母.所以范围应该在130之前,而前31位字符是不可能出如今字符串的(不懂得查下ACSII表即可了).所以仅仅须要开的结点数组大小为130足够了.假设开256就会内存超限. 11908775 2014-10-19 10:45:38 Accepted 2896 250MS 29596K rid=11908775" target="_blank" style="color:rgb(26,92,200); te…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2222 第一道AC自动机! T了无数边后终于知道原来它是把若干询问串建一个自动机,把模式串放在上面跑:而且只走模式串的前缀,用 fail 指针来精准遍历每个前缀的每个后缀,就能行了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222 题意:有N(N <= 10000)个长度不超过50的模式串和一个长度不超过1e6的文本串.其中模式串可以重复.问有多少文本串在模式串中出现过.(对于相同的模式串次数仍然累加) 思路:ac自动机裸题: KMP是先将文本串进行匹配得到失配边f[];但是并不适用于文本串较长,模式串较多的情况.因为每次查询的时间复杂度为O(n+m).n,m分别为文本串和模式串的长度: ac自动机就是建立在Trie上,…