自从懂了并查集只后,感觉好多题都是并查集,就像哪一天的字典树一样,这道题一看就是一个并查集,最后查询父节点有几个,
难点:建模的时候应该吧上下联通的和左右联通的标记一下,只要他们和上下左右的都能连通,就把他们并到一个集合里面,我是只判断下和右即可,
源代码:
#include
#include
int up[8], down[8], right[8], left[8];
int par[...
分类:
其他好文 时间:
2014-11-27 09:16:38
阅读次数:
162
字典树,又称为字母数,前缀树等等,不仅可以存储字符,还可以存储数字等,
又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。
字典树与字典很相似,当你...
分类:
其他好文 时间:
2014-11-27 01:39:23
阅读次数:
202
统计难题Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 131070/65535 K (Java/Others)Total Submission(s): 19054Accepted Submission(s): 8418Problem Desc...
分类:
其他好文 时间:
2014-11-24 18:59:19
阅读次数:
192
trie,又称前缀树或字典树. 它利用字符串的公共前缀来节约存储空间.
定义
Trie树中每个单词都是通过character by character方法进行存储,相同前缀单词共享前缀节点.
可以看到,每条路径组成一个单词.上面这颗树存了to/tea/ted/ten/inn这些词.
性质
(1)根节点不包含字符,除根节点外的每个节点只包含一个字符。(2)从根节点到...
分类:
编程语言 时间:
2014-11-24 17:20:14
阅读次数:
219
题目链接:传送门
字典树。。
题意:给以部字典,英文和火星文对照的,再给一篇火星文,要求把火星文翻译成英文(字典中没有的火星文直接原样输出)
map水过。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-11-23 20:21:19
阅读次数:
172
A:codeforces Round#260 div1 B [a lot of games].
题解:俩人玩游戏,有若干个字符串,每一轮都是俩人轮流念一个字母,使得当前的这些字母是其中一个字符串或者其前缀,即在字典树上走,每人走一步,走不了的人输,然后有m轮,每轮输的下一轮先手,问最后一轮谁赢?
题解:
显然这是一道博弈题,但是如果我们单纯地计算每一局是先手赢还是后手赢,那就要跪了。...
分类:
其他好文 时间:
2014-11-22 12:06:47
阅读次数:
167
题意:一棵 n 个结点的树,树边有权值w(0
题目链接:http://poj.org/problem?id=3764
——>>取0为根,预处理出所有结点到根的异或xOr[i]。那么结点 a 与结点 b 之间的路径异或就是xOr[a] ^ xOr[b]。。
权值 w 最多31位,于是,将每个xOr的二进制表示从高位到低位插入到 01 Trie中(0为0,非0为1)。。
查询时从高位开始贪心...
分类:
其他好文 时间:
2014-11-22 10:40:33
阅读次数:
230
题目大意:给出一些单词,和一些句子,当且仅当句子可以分割成的子串都可以被词典翻译,就说明这个子串是可以被翻译的。求最长的可以被翻译的前缀长度。
思路:利用Trie树来刷数组,能够刷到的最长的地方就是这个串最长可以翻译到的地方。
PS:在BZOJ上Trie居然比AC自动机快,我的渣代码都刷到第一篇了。。。
CODE:
#include
#include
#includ...
分类:
编程语言 时间:
2014-11-20 18:49:12
阅读次数:
286
题目大意:给定一个单词表和m个字符串 问每个字符串的最长的前缀,满足这个前缀可以拆分成一些字符串 使这些字符串都在单词表中出现过
再也不敢看错数据范围了……一道明明用Trie树能解决的问题居然被我写了AC自动机……
将单词表中的单词全都插入AC自动机 每个单词所在的节点记录这个单词的长度
然后对于每个字符串 用f[i]表示长度为i的前缀是否能拆分成单词表中的单词 跑AC自动机
对于每个匹配...
分类:
编程语言 时间:
2014-11-19 01:30:12
阅读次数:
182
输入
输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词。接下来的一行为一个正整数m,表示小Hi询问的次数,其后m行,每一行一个字符串,该字符串由不超过10个的小写英文字母组成,表示小Hi的一个询问。
输出
对于小Hi的每一个询问,输出一个整数...
分类:
其他好文 时间:
2014-11-17 22:55:44
阅读次数:
459