hdu4534

来源:互联网 发布:网络监控施工方案范本 编辑:程序博客网 时间:2024/06/11 13:37

此题是ac自动机+状态压缩dp

由于按要求的各个串的长度不超过8个,所以可以用状态压缩来表示各个串的状态

dp【i】【j】【k】【2】其中i代表长度i的串,j代表节点,k代表必须选择的串的每个串的选择状况,其中dp代表删除的值,2一个代表删除的个数,一个代表同时的价值

那么转移就是dp【i】【j】【k】【0】=min(dp【i-1】【pre】【prek】【0】+1)如果删除一个字符的状态比删除个数要优那么就是这个值,如果相等的时候

就要比较dp【i】【j】【k】【1】=min(dp【i-1】【pre】【prek】【1】+val)其中pre是前状态,prek代表加入状态k之前的状态

然后这里要判断的就是禁止串,那么只需要建模式串的时候记录禁止串的节点,那么在后面跑匹配串的时候看是否到禁止节点进行判断就好了,还要要注意的是由于是禁止串所以在建立失配的时候要将禁止串传上去。

最后统计所有的全必须串状态为1的dp值就好了

原创粉丝点击