题意:
给n,m,k ,再给出m个单词
问长度为n的字符串,至少在m个单词中含有k个的组成方案有多少种。
思路:
由于m最大是10,所以可以采取状压的思想
首先建立trie图,在每个单词的结束节点标记一个mark=(1
然后需要注意的,对于每个节点,应该顺着fail指针遍历一遍,
把所有的mark取一个并集。
因为就是如果单词出现包含的话,比如 she和he 我拿了she,其实等于...
分类:
其他好文 时间:
2014-10-15 15:00:00
阅读次数:
176
题意:
给N个单词,再给一个串str (只含A、G、C、T)
问对于str要至少修改几个字符能不含有N个单词
思路:
建立trie图,做自动机dp
dp[i][j] 代表走过str的i个字母在j节点至少需要修改几个字符
trie *p=node[j]->next[k];
if(p->mark) continue; //不可达
dp[i][p->id]=min(dp[i][...
分类:
其他好文 时间:
2014-10-15 14:43:30
阅读次数:
277
题意:
给n个字母,和m次数。
然后输入n个字母出现的概率
然后再给一个目标串str
然后问m次中敲出目标串的概率是多少。
思路:
AC自动机+概率dp的简单题。
首先建立trie图,然后就是状态转移了
dp版本:
dp三重循环变量次数,节点数,和字母数
代码:
#include"cstdlib"
#include"cstdio"
#include"cstring"
#in...
分类:
其他好文 时间:
2014-10-14 16:18:08
阅读次数:
252
Trie图的简单应用。这题关键是想出递推式。令d(i)表示从字符i开始的字符串,d(i)=sum{d(i+len(x))},x是s[i...L]的前缀。然后把所有可分解成的单词构造成一颗Trie树,再让母串在上面跑,d[0]即是方案总数。
#include
#include
#include
#include
#define mod 20071027
#define M 400005
using...
分类:
其他好文 时间:
2014-09-26 20:24:47
阅读次数:
179
首先,学AC自动机之前有必要掌握 Trie 图,KMP。 AC自动机其实和KMP类似,它的fail指针就相当于KMP中的next指针,只不过fail指针是空间上的,而next指针是线上的。fail指针永远都指向层数比它低的对应节点,所 以它有比较多的性质, 比如 一直走fail 最后始终是会走到.....
分类:
其他好文 时间:
2014-09-17 10:08:41
阅读次数:
195
Description
Word puzzles are usually simple and very entertaining for all ages. They are so entertaining that Pizza-Hut company started using table covers with word puzzles printed on them, possibly ...
分类:
其他好文 时间:
2014-07-16 14:42:26
阅读次数:
311