题目传送门题意:询问所有字符串的比较次数和(注意for循环内的比较也算)分析:将所有字符串插入到字典树上,然后结点信息记录有几个字符串,那么每走到一个结点就能知道比较到此时需要的次数。学习到链表存结点#include using namespace std;typedef long long ll;...
分类:
其他好文 时间:
2015-12-19 20:33:28
阅读次数:
211
trie这种树也被称为线索,搜索树。正如图以下是用stl 的map来实现class trie_item_c{public: trie_item_c(){} trie_item_c(const char nm) { name = nm; } void set_name(const char nm).....
分类:
其他好文 时间:
2015-12-15 14:18:46
阅读次数:
86
题意:询问树上结点x到结点y路上上的权值异或z的最大值。任意结点权值≤ 2^16,可以想到用字典树。但是因为是询问某条路径上的字典树,将字典树可持续化,字典树上的结点保存在这条路径上的二进制数。按照dfs序建树,结点u的字典树表示u到根结点路径上的字典树。如果两个结点u和v,在同一条通往根结点的路径...
分类:
其他好文 时间:
2015-12-13 11:06:42
阅读次数:
188
http://acm.hdu.edu.cn/showproblem.php?pid=2222一个AC自动机的模板题。用的kuangbin的模板,静态建Trie树。可能遇到MLE的情况要转动态建树。AC自动机的讲解看这里http://blog.csdn.net/niushuai666/article/...
分类:
其他好文 时间:
2015-12-11 01:27:57
阅读次数:
149
若沿用Word Search的方法,必定超时。一种被广为使用的方法是使用字典树+DFS。...
分类:
其他好文 时间:
2015-12-10 19:37:21
阅读次数:
178
字典树入门,包括建树,插入以及查找我的算法知识太差,有待提高,多看多练描述:建立一个词库,输入若干个单词,输入以0结束 可以查询单词,返回他在词库中出现的次数,(ps:作为某个词的前缀时也算出现一次)/* 本来以为字典树挺难的,结果看了之后感觉基础还是挺简单的 下面算法算出建立一棵字...
分类:
其他好文 时间:
2015-12-08 00:35:05
阅读次数:
124
1.Hash树理想的情况是希望不经过任何比较,一次存取便能得到所查的记录,
那就必须在记的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和一个唯一的存储位置相对应。因而在查找时,只要根据这个对应关系f找到
给定值K的像f(K)。由此,不需要进行比较便可直接..
分类:
其他好文 时间:
2015-12-06 17:50:42
阅读次数:
281
class TrieNode { // Initialize your data structure here. TrieNode[] child; boolean isWord; public TrieNode() { child = new TrieNode...
分类:
其他好文 时间:
2015-12-06 13:06:50
阅读次数:
137
题目连接https://leetcode.com/problems/implement-trie-prefix-tree/Implement Trie (Prefix Tree)DescriptionImplement a trie with insert, search, and startsWi...
分类:
其他好文 时间:
2015-12-05 00:21:04
阅读次数:
205
暴力部分: 这个题一开始的想法是 n^2 枚举两个点,然后logn维护LCA,在倍增的同时维护异或值和 k 的个数。 s_z_l老爷指导了新的思路,既然这个树只有n^2个LCA,那么枚举LCA,同时向下深搜即可。标算: 首先点分治,尽力保证树的平衡,然后按照Trie树的性质,贪心,至于k,我们...
分类:
其他好文 时间:
2015-12-04 14:22:12
阅读次数:
230