
trie树/字典树
ACTerminate
这个作者很懒,什么都没留下…
展开
-
Codeforces 965E Short Code [字典树+想法]
题意 给你n个完全不同的字符串,求将某些字符串改为其前缀,使得新的字符串集,依旧各不相同,且字符串总长度最小。 题解 首先我们字典树建树,字符串的末节点标记为1,这时候得到了一个只有0和1的树,为了将字符串总长度最小,我们肯定要尽量让1的节点在前。因此对于一个权值为0的节点,我们贪心的取其子树下深度最大的节点放置当前节点的位置,这样就可以满足字符串深度最低,所以我们利用multiset维护每...原创 2018-05-19 20:25:01 · 445 阅读 · 0 评论 -
计蒜客 阿里巴巴的手机代理商(中等)[字典树]
题意 有四种操作: 1. 插入一个单词,词频为k 2. 删除所有a这个单词 3. 查询以a为后缀的所有单词词频和 4. 将后缀为a的单词全部更改为后缀为b的单词。 题解 建立一颗后缀字典树,每一个节点记录size与End,分别表示以当前后缀为后缀的所有单词的词频与以当前后缀为完整单词的单词数,End只更新单词的第一个字母所在的节点,size要对每个节点都更新。update操作则将整个...原创 2018-05-14 09:58:14 · 430 阅读 · 5 评论 -
HDU 6191 Query on A Tree [可持久化字典树]
题意:给你一棵有根树,树上每个节点有一个值,每次询问以u为根节点的子树异或上x的最大值。 题解:按照dfs序建关于数字的二进制可持久化字典树就好了= = AC代码: #include<stdio.h> #include<vector> #include<string.h> #define N 100005 using namespace std; ...原创 2017-08-31 18:11:15 · 2524 阅读 · 0 评论 -
计蒜客 阿里巴巴的手机代理商(困难)[字典树]
题意 有四种操作: 1. 插入一个单词,词频为k 2. 删除所有a这个单词 3. 查询以a为后缀的所有单词词频和 4. 将后缀为a的单词全部更改为后缀为b的单词。 5. 查询当前版本-k的版本以a为后缀的所有单词词频和 题解 对于前四个问询,建立一颗后缀字典树,每一个节点记录size与End,分别表示以当前后缀为后缀的所有单词的词频与以当前后缀为完整单词的单词数,End只...原创 2018-05-15 14:13:11 · 268 阅读 · 0 评论