题意:
给n,m,k ,再给出m个单词
问长度为n的字符串,至少在m个单词中含有k个的组成方案有多少种。
思路:
由于m最大是10,所以可以采取状压的思想
首先建立trie图,在每个单词的结束节点标记一个mark=(1
然后需要注意的,对于每个节点,应该顺着fail指针遍历一遍,
把所有的mark取一个并集。
因为就是如果单词出现包含的话,比如 she和he 我拿了she,其实等于...
分类:
其他好文 时间:
2014-10-15 15:00:00
阅读次数:
176
什么是trie树?
◇ trie树是一种用于快速检索的多叉树结构。
◇ 和二叉查找树不同,在trie树中,每个结点上并非存储一个元素。
◇ trie树把要查找的关键词看作一个字符序列。并根据构成关键词字符的先后顺序构造用于检索的树结构。
◇在trie树上进行检索类似于查阅英语词典。
一棵m度的trie树或者为空,或者由m棵m度的trie树构成。
例如,电子英文词典,为了方便用户快...
分类:
其他好文 时间:
2014-10-14 22:44:29
阅读次数:
281
题意:
给n个字母,和m次数。
然后输入n个字母出现的概率
然后再给一个目标串str
然后问m次中敲出目标串的概率是多少。
思路:
AC自动机+概率dp的简单题。
首先建立trie图,然后就是状态转移了
dp版本:
dp三重循环变量次数,节点数,和字母数
代码:
#include"cstdlib"
#include"cstdio"
#include"cstring"
#in...
分类:
其他好文 时间:
2014-10-14 16:18:08
阅读次数:
252
题目大意:给定一个序列,提供下列操作:
1.在数组结尾插入一个数
2.给定l,r,x,求一个l
首先我们可以维护前缀和 然后就是使x^sum[n]^sum[p-1]最大
x^sum[n]为定值,于是用Trie树贪心即可
考虑到l-1
每个区间[l,r]的Trie树为tree[r]-tree[l-1]
注意0要插入一个数字0,所以把-1作为空节点,然后把数组向前推进一位即可
#inc...
分类:
其他好文 时间:
2014-10-14 11:13:48
阅读次数:
206
题意:给你一堆字符串,问是否满足对于任意两个字符串a、b,a不是b的前缀trie入门题,只用到了insert和query操作 1 #include 2 #include 3 #include 4 using namespace std; 5 #define maxnode 1000 6 #de...
分类:
其他好文 时间:
2014-10-13 18:02:27
阅读次数:
241
TIANKENG’s restaurant(Ⅱ)Time Limit: 16000/8000 MS (Java/Others)Memory Limit: 130107/65536 K (Java/Others)Total Submission(s): 456Accepted Submission(s...
分类:
其他好文 时间:
2014-10-11 17:05:45
阅读次数:
241
题目大意:给定n个数,求这n个数两两异或的值中的前k小
首先我们对所有数字建立二进制Trie树,可以利用Trie树上的size域查询出一个数与其它数异或值的第k小
然后我们维护一个堆,将所有数与其它异或值的第2小加入堆(第一小是自己异或自己,不在题目要求范围内),当取出一个数异或值的第k小后,将第k+1小加入堆
一个异或值会被两个数分别取出一次,所以取出奇数次时输出,取2*k次即可
时间复...
分类:
其他好文 时间:
2014-10-11 15:27:51
阅读次数:
190
关于海量数据的问题,网上大多都是查询前N条,或出现次数比较多的前N条等。基于此,有:1)、使用Trie树或哈希表进行统计次数;2)、使用快排、堆或归并进行排序。3)、当然,还可以先进行哈希取模,将数据量变小,之后重复1)与2)即可,最后归并。大致就这些方法,当然说得很容易,做起来有点难度,如Trie...
分类:
其他好文 时间:
2014-10-06 17:16:50
阅读次数:
127
基本概念和性质在计算机科学中,trie,又称前缀树或字典树或单词搜索树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有...
分类:
其他好文 时间:
2014-10-05 02:12:07
阅读次数:
252
题意:
给出N个字符串,要求选出若干个,使得选中的字符串的公共前缀长度与选中字符串的个数的乘积最大。
分析:
简单粗暴的Trie模板题。
对于Tire中的每一个结点添加两个信息:该结点的深度及该结点杯访问的次数,最后求出这两个信息的最大值就行了,边加入字符串边维护就行。...
分类:
其他好文 时间:
2014-10-04 22:39:07
阅读次数:
281