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神牛,偲哥威武。。

附代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值