
字符串---Tire树
Soar-
这个作者很懒,什么都没留下…
展开
-
Shortest Prefixes POJ - 2001 (Trie树基本运用)
题意: 给定多个单词组成的词典, 输出每个单词对应的前缀, 使得每个前缀唯一. 如果不存在就输出单词本身. 也就是:找出一个前缀,该前缀能唯一表示该字符串. 分析: 建立Trie树,每个节点的V代表有多少个字符串路径上含有它. Find函数里查找每个单词的前缀,知道v值==1返回即可. #include<cstdio> #in...原创 2018-09-11 17:33:31 · 165 阅读 · 0 评论 -
Phone List HDU - 1671(Trie树的基本运用)
题意: 给你多个由0-9构成的字符串集合,问你这个集合中是否有一个字符串是其他字符串的前缀? 分析: 直接构造字典树,然后一一插入每个字符串,判断是否有比当前字符串短或长的同一路径的字符串已经在树中了. #include<bits/stdc++.h> using namespace std; const int max...原创 2018-09-08 21:38:36 · 144 阅读 · 0 评论 -
Revenge of Fibonacci HDU - 4099 (Trie树运用)
题意: 给你一个数,这个数是斐波那契数列中的一个数的前缀,找出这个前缀的最小下标. 且这个下标如果超过了10W还没有符合要求的话,就输出-1.且输入数不会超过40位,且没有前导0. 分析: 直接思路那就是把前10W个斐波那契数列都搞出来构建字典树,然后对每个输入串判断该字典即可. 这种想法不可行~,下标为10W的斐波那契数大概有几万位,不可能这样加的. 我们只...原创 2018-09-09 00:00:14 · 131 阅读 · 0 评论 -
前缀树Trie
Trie树(蓝书P208写的很详细): 简介: Trie树(也叫前缀树).给你一个字典构成的Trie树和一个单词,我们可以线性的查找出该单词是否属于字典. 代码实现: const int maxnode=4000*100+100;//预计字典树最大节点数目 const int sigma_size=26;//每个节点的最多儿子数 struct Trie { //这里ch用...原创 2018-09-06 16:20:09 · 179 阅读 · 0 评论 -
统计难题 HDU - 1251 (Tire树的基本运用)
题意: 给你多个单词,然后在给你一个字符串s,现在要问你以该字符串s为前缀的单词数目有多少个? 分析: 标准的Trie树应用,我们只需要用树节点的v值表示以树根root到当前节点的路为前缀的单词数即可. 在插入新单词节点的时候,该单词节点路过的所有Trie节点v都要+1. 查询的时候,如果能查到该前缀,直接输出v值,否则输出...原创 2018-09-06 20:33:14 · 257 阅读 · 0 评论 -
Remember the Word UVA - 1401 (Trie+dp)
题意: 给你一个由N个单词组成的词典,和一个字符串S。问你S由N中的单词组成的方法有多少种?字典中的单词可以重复使用但是不可重叠。 分析: 令d[i] = x 表示S串的后缀[i,L-1]串有多少种构造方式.L = strlen(S).字符从0到L-1下标. d[i] = sum(d[i+len(x)]) 仅当[i,len(x-1)]区间正好是字典中的一个单...原创 2018-09-06 23:57:48 · 169 阅读 · 0 评论