![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字典树
Marcus-Bao
这个作者很懒,什么都没留下…
展开
-
hdu 2072 单词数 字典树
题目链接思路:这个题其实好多方法可以做,map set 都可以搞过去.刚学字典树,所以用一下模板...这个题只用到了插入,而且把字典树中的cnt稍微改动一下即可,那一个存的是到此位置时以该字符串为前缀的字符串的数量.这里表示的是该单词最后的尾节点在字符串中是否出现过,也就是是否出现过该单词.#include #include #include #inclu原创 2017-07-29 20:55:20 · 429 阅读 · 0 评论 -
qduoj 65 again and again 字典树
题目链接题意:xx学习了Trie树后,向你问了一个问题,给定一个字符串集合S={str1, str2, …,strn}和一个字符串s,在s的后面接尽量少的字符,使其属于集合S。当然如果s本身就属于S,s就是答案。如果多个,输出字典序最小的.思路:字典树中记录两个东西,一个是该单词的尾节点在字典树中是否出现过,也就是是否有该单词.另一个就是以某一字符串为前缀的单词原创 2017-07-29 21:02:08 · 422 阅读 · 0 评论 -
字典树
原创字典树字典树,又称单词查找树,Trie树,是一种树形结构,哈希表的一个变种。用于统计,排序和保存大量的字符串(也可以保存其的)。优点就是利用公共的前缀来节约存储空间。在这举个简单的例子:比如说我们想储存3个单词,nyist、nyistacm、nyisttc。如果只是单纯的按照以前的字符数组存储的思路来存储的话,那么我们需要定义三个字符串数组。但是转载 2017-07-28 19:34:30 · 276 阅读 · 0 评论 -
hdu 1251 统计难题 字典树裸题
题目链接思路:经典的字典树问题,字典树最基本的插入和查询操作.字典树最最最基本的应用就是查询以某一个单词为前缀的单词的数量,有两种模板,一种是静态的一种是动态的,一般用静态的就好.动态模板#include#include#includeusing namespace std;typedef long long ll;const int原创 2017-07-28 20:16:37 · 349 阅读 · 0 评论 -
Codeforces Round #430 Vitya and Strange Lesson 逆向思维+01trie
题目链接题意:给出一个长度为n的非负整数序列A,每次操作要求把整个序列异或上x后求mex。 n,m,Ai思路:首先求异或最大值最小值我们知道可以用01trie,每次insert是log,查询也是log级别的。那么这个问题让我们求未出现的最小的自然数,我们来想想怎么转化.首先我们知道 x^a[i]^z = a[i] ^(x^z).原创 2017-08-30 23:53:01 · 321 阅读 · 0 评论 -
hdu 5536 Chip Factory 01trie+可删除
题目链接 题意:求max( (a[i] + a[j]) ⊕a[k]\oplus a[k] ) (i, j, k都不相同) 思路:这题可以暴力也可以01trie. 来说说01trie. 其实遇到异或求最大最小啊啥的都可以想01trie是否可做. 那么这个题肯定就是枚举两个和,然后跑01trie了.关键是怎么解决下标不同的问题,这里解决办法是增加一个del函数,删除以某个前缀为数的个数.原创 2017-09-12 00:10:58 · 373 阅读 · 0 评论 -
2018计蒜之道 阿里巴巴的手机代理商(中等) 字典树(删除+修改)
传送门思路: 一看到这题第一眼就想到了字典树,很明显需要将字符串reverse一下,然后按照对应的操作进行操作就好了。当时主要卡在了如何修改上,其实修改也非常简单,我们只需找到原来后缀的子树,然后将新的后缀插入字典树,最后将原来的子树挂到新的后缀下即可。但是有一点需要注意就是原来的后缀子树并不能删除,只需要把对应层的结点赋值为0即可。记得这个过程需要维护一下替换后的前缀单词数。#includ...原创 2018-05-16 16:48:22 · 276 阅读 · 0 评论