字典树
文章平均质量分 83
alpc_qleonardo
这个作者很懒,什么都没留下…
展开
-
CodeForces 858D Polycarp's phone book(Trie)
大致题意,给出很多个号码,然后要你对每一个号码找出一个长度最短的识别码,即长度最短的同时,只有那一个电话包含这个识别码。 这里队友机智无比,直接想到用字典树搞。由于号码最多只有10位,所以对于每一个号码,在字典树里面分别加入第0位~最后一位,第1位~最后一位,第2位~最后一位……这样解决了字典树只能一定要从头开始的缺陷。如此一来对于一个号码的任意一个小段,我们都可以对应在字典树中找到一个从根开始的路径与之对应。那么我们要做的就是统计一直到任意小段的最后一位的节点,有多少个这样的子串包含这个小原创 2017-10-02 18:56:50 · 518 阅读 · 0 评论 -
CSU 2023 Bless You Autocorrect! (字典树+BFS)
大致题意,给出单词表,然后让你拼写一个单词。可以支持手动输入字符,手动删除字符和摁下空格键键入单词表中与当前输入串前缀相同的第一个单词。三种操作的代价都是1,现在给出一些单词,对于每个单词输出打出单词的最小代价。 首先,字典树是肯定可以想到的,当时想法是对于每一个节点弄一个first节点,指向与当前点表示串前缀相同的第一个单词的下一个字母的节点,但是这样子处理代价的时候不好统计。其实正解已经很近了。对于每一个节点,考虑连接一条边指向经过当前表示串前缀相同的第一个单词的末端节点,并且建立一个f原创 2018-04-03 15:03:23 · 509 阅读 · 2 评论 -
计蒜客 ICPC南京网络赛 Set(字典树 + 合并 + lazy更新)
大致题意:n个集合,你要进行m个操作。总共有3种操作。第一种,合并两个集合x和y。第二张,把特定的集合里面所有的数字加一。第三种,询问在某个集合里面,对于所有数字对2的k次方取模后,有多少个数字等于x。首先,合并的话实在是有太多的方式,大部分数据结构的启发式合并包括set都可以。但是主要是第三个,所有数字对2的k次方取模,然后看结果有多少个数字等于x。仔细想想这个取模,不难发现,其实就是询问,一个集合里面,在二进制下,后k位x的数字有多少个。询问与二进制和位数有关,很容易想到用字典树。字典树的合并比较容易写原创 2018-09-07 00:14:14 · 306 阅读 · 0 评论