ACM_Trie
文章平均质量分 80
Gatevin
这个作者很懒,什么都没留下…
展开
-
UVALive 3942 (LA 3492) Remember the Word Trie树 + 记忆化搜索
题目大意: 白书例题 给出由S个不同单词组成的字典和一个长字符串. 把这个字符串分解成若干个单词的连接, 单词可以重复使用, 问有多少种分解方法 单词个数1 大致思路: 首先将S个单词插入Trie树, 然后利用递推的思想记忆化搜索即可 代码如下: Result : Accepted Memory : ? KB Time : 79 ms原创 2015-02-11 14:22:16 · 729 阅读 · 0 评论 -
UVA 11732 "strcmp()" Anyone? Trie树 + 树的左儿子右兄弟存储法
题目大意: 在C/C++的函数比较的STL中存在这样的字符串比较函数: int strcmp(char *s, char *t) { int i; for (i=0; s[i]==t[i]; i++) if (s[i]=='\0') return 0; return s[i] - t[i]; } 现在有N个给出的字符串(N原创 2015-02-12 17:12:02 · 913 阅读 · 0 评论 -
Codeforces 514C Watto and Mechanism Trie树 + dfs
题目大意: 现在需要找的字符串S的T的关系为两者长度相同且刚好有1处字符不同 就是对于给定的n个字符串(n 大致思路: 就是将n个字符串插入Trie树暴搜一下就过了.... 给出一点可能错的样例吧: Input: 3 2 a b c bb a b Output: NO YES YES 代码如下: Result : Accepted原创 2015-02-25 22:44:27 · 931 阅读 · 0 评论 -
UVA 11488 Hyper Prefix Sets Trie树求最值
题目大意: 白书练习题 给定一个字符串集合S, 定义P(S)为所有字符串的公共前缀长度与S中字符串个数的乘积, 例如P{000, 001, 0011} = 6, 现在给出n个只包含字符01的串(n 大致思路: 这题比较巧妙, 刚开始是凭感觉写的, 结果一发AC了...后来证明了一下正确性 我的想法就是对n个字符串插入Trie树的时候, 每插入一个节点, 就对当前节点的值加上其原创 2015-02-13 16:31:41 · 675 阅读 · 0 评论 -
UVALive 5913 (LA 5913) Dictionary Size Trie树计数
题目大意: 就是现在给出至多10^4个字符串每个长度都在1~40之间, 只包含小写字母, 问如果将其中任意一个串的前缀或者是任意一个串的后缀连接起来可以构成一个新词, 那么包括这些词本身在内一共可以形成多少个不同的词 大致思路: 这个题感觉还是挺巧妙地利用了Trie树来计数, 首先我们将所有的n个串插入到一个Trie树中, 然后将所有串倒过来插入到另外一个Trie书中, 那么trie原创 2015-05-06 12:37:24 · 958 阅读 · 0 评论 -
UVA 1462 or UVALive 4769 Fuzzy Google Suggest Trie树上的dfs 2009年哈尔滨G题
题目大意: 就是现在给出至多30W个长度不超过10的串, 然后对于m 模糊匹配S和T的距离 S和T的距离是有S变成T需要进行的最少操作数, 一次操作可以是将S删去一个字符或者插入一个字符或者将其中某个字符替换成其他字母 大致思路: 就是对于30W个串建立Trie树之后进行dfs搜索就可以了 刚开始在UVALive上交一直Runtime Error... 实在找不到错误了之后去原创 2015-05-07 21:12:57 · 1091 阅读 · 0 评论 -
UVALive 3703 (LA 3703) Billing Tables Trie树
题目大意: 感觉这就是个坑题意的题吧....看了好久没看懂题意是要干什么, 后来看了一份AC代码之后终于明白题意了 注意到给出的Billing Table是从上到下进行查找然后找到路线的, 也就是说原本一个电话号码对应查找前缀按照给出的顺序一个一个匹配, 遇到匹配的就接入那条线 那么僵这个Table重新编排一下, 使得结果是字典序顺序的, 并且其中任意一个不是另外一个的前缀, 也就是要表最小原创 2015-05-06 19:52:53 · 983 阅读 · 0 评论 -
Codeforces 557E Ann and Half-Palindrome (Trie树)
题目大意: 就是现在给出长度不超过5000的只包含小写字母'a'和‘b'的字符串 定义半回文串:字符串S是半回文串的条件是S[i] = S[|S| - i + 1] 对所有的计数 i, i 然后给出整数K, 求给出的字符串中所有的半回文串中字典序第K小的是什么 相同样子但是出现位置不同视为不同 大致思路: 首先可以O(|S|^2)处理出所有的半回文串, 用half[u][v]原创 2015-10-01 21:49:32 · 527 阅读 · 0 评论 -
HDU 4757 Tree (倍增算法求LCA + 可持久化Trie树)
题目大意: 就是现在给出一棵树, 结点个数不超过10W, 每个节点上有一个不超过2^16的非负整数, 然后10W次询问, 每次询问两个节点的路径上的所有数中异或上给出的数的最大值 大致思路: 刚开始做这个题想的是树链剖分之后用线段树套Trie树来做...结果悲剧地MLE了... 另外那样做得话复杂度其实是比较大的...每次询问都是16*(logn)*logn级别的.. 后来发现是原创 2015-10-05 21:58:16 · 1397 阅读 · 0 评论