基本的操作 1.定义(即定义结点) next是表示每层有多少种类的数,如果只是小写字母,则26即可,若改为大小写字母,则是52,若再加上数字,则是62了,这里根据题意来确定。 cnt可以表示一个字典树到此有多少相同前缀的数目,这里根据需要应当学会自由变化。 1 struct node{ 2 int ...
分类:
其他好文 时间:
2019-10-27 00:54:02
阅读次数:
69
嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2846 这与裸的字典树略有差别: 因为题目要求有n个字符串,m个询问 问字符串在n个字符串中出现过多少次, 即为一个字串的问题,所以我们把一个字符串拆开分别建树。 eg: abcd 中有a,b, ...
分类:
其他好文 时间:
2019-10-24 00:44:01
阅读次数:
120
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一 ...
分类:
其他好文 时间:
2019-10-18 20:40:36
阅读次数:
76
#pragma GCC optimize(2) #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 5e5+10; const int mod=20071027; const int sig... ...
分类:
其他好文 时间:
2019-10-16 13:19:47
阅读次数:
59
2019.10.1 UOJ Easy Round #1 A:一开始就想偏了,从不等式角度来看,其实就是一个均值不等式。 B:字典树水题,记录一个指针指向真正的目录即可。 C:可撤销并查集+离线算法。 顺便学习了一下可持久化并查集,就是一个按秩合并的可持久化数组(用可持久化线段树实现即可)。 ...
分类:
其他好文 时间:
2019-10-01 20:54:39
阅读次数:
104
A文件的含有M行URL的记录,B文件含有N行URL的记录,找出 两个记录里相同的URL,并标记出B文件每个URL在A文件中的位置。分析初见此题,很容易就会想到采用遍历的方式一条一条去找,那么该方法的时间复杂度为O(M*N)。若是采用字典树来解决此题,则可以降低时间复杂度:1 对A进行字典树建树,该过... ...
分类:
Web程序 时间:
2019-10-01 11:31:24
阅读次数:
149
import java.io.*; import java.util.*; /** * 不区分大小写 */ class TrieNode{ TrieNode[] next = new TrieNode[26]; // 只有小写字母的字典树 0存放a 1存放b ... 25存放z int count ... ...
分类:
其他好文 时间:
2019-09-24 21:22:47
阅读次数:
116
DFA算法的全称是Deterministic Finite Automaton,即确定有穷永动机算法。 DFA算法中对汉字的存储,字典树中的节点存储的字符Character类型,不是ASCII码。 建立默认敏感词替换词 private sttaic final String REPLACE=" wh ...
分类:
编程语言 时间:
2019-09-20 22:52:03
阅读次数:
87
一、复杂度 构造回文树需要的空间复杂度为O(N*字符集大小),时间复杂度为O(N*log(字符集大小)) 二、应用 1、求串S前缀0~i内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同) 2、求串S内每一个本质不同回文串出现的次数 3、求串S内回文串的个数(其实就是 ...
分类:
其他好文 时间:
2019-09-17 22:39:39
阅读次数:
101
https://vjudge.net/contest/311647#overview A - Shortest Prefixes 给定n个串,求出每个串的“唯一最短前缀” 用bo[i]表示从字典树根节点0到节点i连成的字符串为前缀的单词个数,那么在查询一个单词的时候,在该路径的某个节点i出现了bo[ ...
分类:
其他好文 时间:
2019-09-16 16:01:31
阅读次数:
104