pku1625 AC自动机,动态规划

我是dp菜。。而且这是第一次写AC自动机,以前AC自动机只是停留在理论阶段,虽然写过几次trie,但是这样完整的AC自动机还是第一次写。其实AC自动机就是一个树形kmp,fail指针都那么像(其实kmp里头我叫p数组,并且我现在还不会扩展kmp,只会朴素kmp和后缀数组,所以我是字符串菜,很多东西都不会呢)。

题目大意:

  给你n个字母,用这些字母组成长度为m的字符串,并且这些字符串中不能包含以下k个字符串。求总共有多少种方法。

简略题解:

  构建一棵AC自动机,然后dp,f[i,ctree[j].son[k]]=sum{f[i-1,j]},然后由于结果很大要用压位高精。额,还有这题最sb的是要读字符而不是字符串,要不然就shax地RE掉,多亏了cai0715神牛,偲哥威武。。

附代码:

阅读更多
个人分类: OI online
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭