码迷,mamicode.com
首页 >  
搜索关键字:字典树 trie    ( 3246个结果
例题3.15 子串 UVa11468
1.题目描述:点击打开链接 2.解题思路:本题利用概率dp+AC自动机解决。首先,把所有的模板串加入到Trie,然后标记所有单词结点,然后每次随机生成一个字符,就相当于在AC自动机中随机走一步,而且只允许走不被标记的结点。令d(u,L)表示当前在结点i,还需要走L步,不进入任何禁止结点的概率。那么不难由全概率公式得到下式: d(u,L)=sum{P[v]*d(v,L-1)|v是一个没有被禁止的...
分类:其他好文   时间:2015-08-28 17:49:49    阅读次数:168
例题3.11 背单词 LA3942
1.题目描述:点击打开链接 2.解题思路:本题利用Trie+dp解决。首先,令d(i)表示从字符i开始的字符串(即后缀S[i...L])的分解方案数,那么d(i)=d(i+len(x)|单词x是S[i..L]的前缀)。如果我们枚举单词,然后判断它是否为S[i...L]的前缀,时间无法承受。所以可以考虑事先把所有的单词存入Trie,然后试着在Trie中查找S[i...L]。查找时,如果找到了一个单...
分类:其他好文   时间:2015-08-28 00:54:11    阅读次数:185
Trie树 + DFS - CSU 1457 Boggle
Boggle Problem's Link: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1457 Mean:给定n个串,有m个询问。每个询问给你一个4*4的字符矩阵,你可以在这个字符矩阵中任意字符出发,向四个方向走(已走过的不可重...
分类:其他好文   时间:2015-08-28 00:29:31    阅读次数:217
算法分类(写这个是为了让自己以后学算法的时候有针对性条理性)
今天acm的学长帮我们总结了以下算法,天啊,我发现自己有好多好多不会的,有的甚至没听说过,但是我把这些记了下来,以后没事儿的时候照着这个补补自己薄弱的部分基本算法:这个比较多比较随,自己多做题多总结了,大概是排序贪心之类。数据结构:都说“算法 + 数据结构 = 程序”, 数据结构是比较重要的,字典树...
分类:编程语言   时间:2015-08-27 15:11:38    阅读次数:163
hdu 1251 字典树的应用
这道题看了大神的模板,直接用字典树提交的会爆内存,用stl 里的map有简单有快#include #include #include #include using namespace std;int main(){ int i, len; char str[10]; map...
分类:其他好文   时间:2015-08-26 21:51:37    阅读次数:183
Searching the String - ZOJ 3228(ac自动机)
题目大意:首先给你一下母串,长度不超过10^5,然后有 N(10^5) 次查询,每次查询有两种命令,0或者1,然后加一个子串,询问母串里面有多少个子串,0表示可以重复,1表示不可以重复。分析:发现查询的次数是比较多的,然后可以利用查询的串建立一个trie,然后用母串跑一遍就行了,不过有两种操作比较麻...
分类:其他好文   时间:2015-08-26 17:10:05    阅读次数:213
bzoj-4103 异或运算
题意: 给出一个长度为n的a数组,和一个长度为m的b数组; 现有一矩阵A[i][j]=a[i] xor b[j]; q次求矩阵中某一块的第k大值; n 题解: 又是一个k大值问题,但是显然并不能将矩阵列出来求值; 但是n和q的范围都小的诡异= =; 所以考虑对于每个询问暴力枚举1-n的某区间; 然后呢,对这些数去找第k大值; 如果询问的是最大值,那么在可持久化Trie上...
分类:其他好文   时间:2015-08-25 23:56:40    阅读次数:270
1095 Anigram单词(51nod)
原题链接:http://www.51nod.com/onlineJudge/questionCode.html#problemId=1095&noticeId=20791老实说这题,我是很不想用字典树,因为不熟~~~但后来没搞出来,就用了字典树。。。。。。。。。。当然得参考一下大神的代码。解法:用m...
分类:其他好文   时间:2015-08-25 19:28:49    阅读次数:141
poj--1625Censored!+AC自动机上的dp+大数
题目链接:点击进入 其实看起来是完全可以用矩阵做的,但是因为用到了大数的,导致内存开不下,所以用dp写了。其实dp的过程依旧就是在我们用禁止出现单词构建的trie上走m步的过程。我们定义dp[i][j]表示走过i步以后到达节点j的方案数,则状态转移应该是dp[i][j]=sum(dp[i-1][k]),其中k表示可以走到j的节点,并且不能是病毒节点。但是其实这样代码就不是那么好写了,其实我们可以用...
分类:其他好文   时间:2015-08-25 14:17:21    阅读次数:121
dp+trie nbut1222 English Game
传送门:点击打开链接 题意:告诉你一个字典,每个单词有一个权值,再给你一个字符串,问这个字符串用字典中的单词不重复字母的覆盖,最大权值是多少。一个单词可以重复出现 思路:先如果不考虑单词匹配,那么就是一个单纯的dp,dp[i]表示前i个已被完全覆盖此时的权值大小,如果在i位置后面有一个单词的长度为l,权值是w,且此时在i位置后长度为l的子字符串就等于那个单词,说明那个单词能放在这个位置,就有d...
分类:其他好文   时间:2015-08-21 23:17:49    阅读次数:201
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!