#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXN 400010
#define MOD 20071027
#define INF 0x7fffffff
#define EPS 1e-8
#define PI acos(-1.0)
#def...
分类:
其他好文 时间:
2014-08-27 09:28:47
阅读次数:
191
Problem Description
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).
Input
输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束...
分类:
其他好文 时间:
2014-08-26 21:29:46
阅读次数:
209
只想说 字典树必释放内存
#include
#include
#include
using namespace std;
struct node {
node *next[53];
int num;
node (){
for(int i=0;i<=53;i++)
next[i]=NULL;
num=0;
}
}*root...
分类:
其他好文 时间:
2014-08-25 15:03:54
阅读次数:
175
黑字:认识红字:要学未添加:要学├─模拟├─字符串│ ├─字符串基础│ ├─kmp│ ├─trie│ ├─ac自动机│ ├─后缀数组│ └─后缀树├─搜索│ ├─深度搜索(dfs)│ ├─记忆化搜索│ ├─广度搜索(bfs)│ ├─双向广搜│ ├─回溯│ ├─A*│ ├─迭代深搜│ ├─IDA*│ ...
分类:
其他好文 时间:
2014-08-24 14:10:52
阅读次数:
353
和hdu2222题相似的水题
提示:
1)连着RE了好多发,没想明白,看了一下网上题解才知道,输入的不一定都是字母,所以next要开100!!!!!!!
#include
#include
int tot;
char str[10005];
int t;
//int time[100];
struct trie {
trie *fail;
trie *next[100];...
分类:
其他好文 时间:
2014-08-23 16:53:36
阅读次数:
279
AC自动模版题,中文题目就不叙述题意了啊。
AC自动主要是构造出字典树之后找到fail指针的跳转,类似于KMP里面的next数组的跳转啊,注意这里是多模式跳转。意思就是这个串跳到下一个串的什么位置啊。
先帖一下,做多了再一起总结吧。
病毒侵袭
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
分类:
其他好文 时间:
2014-08-22 22:36:57
阅读次数:
248
UVA 1462 - Fuzzy Google Suggest
题目链接
题意:要模拟谷歌的模糊搜索,先有一些文本,然后每次输入一个单词查询,这个单词可以进行最多ti次操作,每次操作可以删除一个字符,修改一个字符,或增添一个字符,问这样这个单词最多可以匹配多少个前缀
思路:先建好字典树,每个结点保存经过的次数,然后每次查询,就在字典树上进行dfs,对于找到的结点标记为2,路径标记...
分类:
其他好文 时间:
2014-08-22 21:09:29
阅读次数:
361
Suffix Trie 又称后缀Trie或后缀树。它与Trie树的最大不同在于,后缀Trie的字符串集合是由指定字符串的后缀子串构成的。比如、完整字符串"minimize"的后缀子串组成的集合S分别如下: s1=minimize s2=inimize s3=nimize s4=imize s5=mi...
分类:
其他好文 时间:
2014-08-22 14:22:59
阅读次数:
207
Trie树也称字典树,因为其效率很高,所以在在字符串查找、前缀匹配等中应用很广泛,其高效率是以空间为代价的。一.Trie树的原理 利用串构建一个字典树,这个字典树保存了串的公共前缀信息,因此可以降低查询操作的复杂度。 下面以英文单词构建的字典树为例,这棵Trie树中每个结点包括26个孩子结点,因为总...
分类:
其他好文 时间:
2014-08-22 10:46:36
阅读次数:
213