
数据结构-Trie树
数论只会GCD
研二在读
展开
-
HDU 1251 Trie入门
传送门:HDU 1251关于Trie树 Trie树入门详解题解基本Trie树构造和查询, 空间换时间注意这题读字符串只能用gets();或者gets_s();收获 Trie入门 this指针 终于把实验室搬家了, 新的机子挺好用AC code:/*adrui's submissionLanguage : C++Result : AcceptedLove :原创 2016-11-05 11:43:30 · 358 阅读 · 0 评论 -
LA 3942 trie树 + dfs(dp)
传送门:LA 3942题意 给定一个字符串, 在给出s个单词, 求字符串由这些单词组成的方案数(单词可重复)题解 类似于dfs的深搜方案数求解, 区别在于组成单位是单词, 所以可以用trie数保存单词, 搜索时找到单词搜索, 记忆化搜索可以降低时间消耗 建完树之后用dp逆序也是可以做的, 和dfs的原理一样AC code dfs 树存储是以节点方式/*adrui's su原创 2016-11-05 21:14:26 · 440 阅读 · 0 评论 -
UVA 11732 trie树 + 插入式比较
传送门:UVA 11732题意 给你n个单词,让他们两两比较,要求他们运用strcmp时,进行比较的次数。 根据题目数据量的范围,肯定不能用简单模拟,然后就想到比较时建Trie树,关键是考虑怎么计数,例如than和that它们比较的次数就是7次,因为他们是在a之后出现不同,就是要记录比较结束的位置,来进行计算即可,那么我们就来一个val数组代表计数器就好了,代表经过该节点的单词个数。原创 2016-11-06 15:51:15 · 406 阅读 · 0 评论 -
HihoCoder 1014 Trie树模板
传送门:HihoCoder 1014题解 熟练白书的数组模拟Trie树模板AC code:#include<iostream>#include<cstring>using namespace std;const int maxn(1e6 + 5);int cnt[maxn], ch[maxn][26];int idx(char p){return p - 'a';}struct Tri原创 2016-11-06 16:58:55 · 387 阅读 · 0 评论 -
HDU 1671 trie树
传送门:hdu 1671题解插入时查找, 判断当前串是否是已插入字符串集的字串或者是已插入的某字符串是它的字串静态数组实现AC code/** Author : adrui* Language : C++* Result : Accepted* Love : yy* Favorite : Dragon Balls* Standing in the Hall of Fame*/#i原创 2016-11-07 22:45:22 · 306 阅读 · 0 评论 -
HDU 1247 trie树 + 暴力查询
传送门:HDU 1247题意 按字典序给出单词, 找出其中可有可由其他两个单词组成的单词输出题解 更开始想的是倒序插入字典树然后dfs搜索回溯输出, wa, 不过应该也能出来可能我写的太挫…. 这题没给具体的单词长度限制, 但是数据不是很大, 就想到了把单词暴力拆分成两部分分开在字典树中查找, A了AC code:/** Author : adrui* Language :原创 2016-11-09 12:55:42 · 413 阅读 · 0 评论 -
HDU 1075 字典树
传送门:HDU 1075题意 单词翻译题解 trie树构造, 这题没有具体数据量所以动态建树最好 翻译时, 最后补一位空格符, 遍历字符串的时候遇到非字母时查询, 查到替换;遇到字母用数组保存当前数组AC code:/** Author : adrui* Language : C++* Result : Accepted* Love : yy* Favorite :原创 2016-11-10 17:48:32 · 481 阅读 · 0 评论 -
POJ 2001 字典树
题意 给定一组字符串, 找出每个字符串的最短可识别的缩写前缀 如果到串尾也无法特定识别, 标志为整个串题解 字典树 + 构造时前缀串AC code:/** Author : adrui* Language : C++* Result : Accepted* Love : yy* Favorite : Dragon Balls* Standing in the Hall o原创 2016-11-12 20:51:16 · 331 阅读 · 0 评论 -
HDU 1080 map or trie树
传送门:HDU 1800题意 根据题意可知:意思是有若干个飞行员,需要在扫帚上练习飞行,每个飞行员具有不同的等级,且等级高的飞行员可以当等级低的飞行员的老师,且每个飞行员至多有且只有一个老师和学生。具有老师和学生关系的飞行员可以在同一把扫帚上练习,并且这个性质具有传递性。即比如有A,B,C,D,E五个飞行员,且等级是A>B>C>D>E,那么可以使A当B的老师,B当C的老师,E当D的老师,那么A,原创 2016-11-09 16:02:27 · 421 阅读 · 0 评论