题目链接:https://vjudge.net/problem/HDU-1251 题意:给定一系列字符串之后,再给定一系列前缀,对每个前缀查询以该字符串为前缀的字符串个数。 思路: 今天开始学字典树,从入门题开始。用数组实现,count数组表示每个结点出现次数,trie[0]为根节点。插入和查询一个 ...
分类:
其他好文 时间:
2019-11-10 13:43:36
阅读次数:
72
题目链接:https://vjudge.net/problem/HDU-1671 题意:给定n个字符串,判断是否存在一些字符串是另一些字符串的前缀。 思路: 套模板,存在前缀可能是两种情况: 当前字符串枚举位数时已经存在之前的字符串了;(即已经存在911,当前插入9112) 或者当前字符串枚举完之后 ...
分类:
其他好文 时间:
2019-11-10 13:31:33
阅读次数:
74
(并不是按照难度来排序的) $1.doubt$ 题意: $VKorpela$很喜欢异或,有一天,他看到$Serene$写下了两个长度都为$n$的数组$a$和$b$,他想对$a$和$b$分别按照某种方式排序,然后构造一个数组$c$,满足$??_?? = ??_?? xor ??_??$ 。他想请你告诉 ...
分类:
其他好文 时间:
2019-11-09 23:45:31
阅读次数:
104
字典树算法是典型的空间换时间的算法,虽然对空间的消耗很大,但是利用字符串的公共前缀来降低查询时间,查询效率非常高;而且也可以使用压缩字典树(Compressed Trie)来降低对内存的消耗,增加硬件资源的有效利用率。
分类:
编程语言 时间:
2019-11-08 17:42:56
阅读次数:
147
字典树 (Trie) 用于存储字符串。树的每条边恰好表示一个字符,每个节点代表从根到该节点的路径所对应的字符串。 简介与操作实现可见蓝书P82~83。 Trie字典树很好地利用了前缀,节省了很多空间。 1 //先说明一下:本代码段的字符串d的下标都是从1开始 2 inline void insert ...
分类:
其他好文 时间:
2019-11-06 23:17:24
阅读次数:
171
主席树静态序列查区间第k大 struct tree{ int l,r,sum; }t[100010]; void change(int &now,int pre,int l,int r,int k){ now=++cnt; t[now]=t[pre]; t[now].sum++; int mid=( ...
分类:
其他好文 时间:
2019-11-03 18:43:33
阅读次数:
119
https://loj.ac/problem/10049 题目描述 给出$n$个字符串,求是否存在一个串是另一个串的前缀。 思路 字典树的模板题。我们考虑在建字典树时增加$end$标记,在插入字符串判断是否访问到$end$标记即可。不过需要特判是否插入 ...
分类:
其他好文 时间:
2019-11-03 18:43:21
阅读次数:
96
https://loj.ac/problem/10050 题目描述 给出$n$个整数,求选出两个数使它们的异或值最大。 思路 解决异或问题也是字典树的常用作用之一。我们考虑对于一个数$x$,我们如何求出它的异或值最大的另一个数。异或的定义是每一位相同为 ...
分类:
其他好文 时间:
2019-11-03 18:28:55
阅读次数:
71
题目链接:https://www.luogu.org/problem/P5410 题意:有两个字符串a,b,要求输出b与a的每一个后缀的最长公共前缀。输出: 第一行有lenb个数,为b的next数组(特别地,next1为lenb) 第二行有lena个数,即答案。 思路:扩展kmp模板,涉及字典树,后 ...
分类:
编程语言 时间:
2019-11-03 13:07:34
阅读次数:
92
逆序单词 HIhoCoder 1366 字典序 题意 在英文中有很多逆序的单词,比如dog和god,evil和live等等。 现在给出一份包含N个单词的单词表,其中每个单词只出现一次,请你找出其中有多少对逆序单词。 第1行:1个整数,N,表示单词数量。2≤N≤50,000。 第2..N+1行:每行1 ...
分类:
其他好文 时间:
2019-10-29 23:22:51
阅读次数:
143