
ACM_自动机
文章平均质量分 83
逍遥丶綦
这个作者很懒,什么都没留下…
展开
-
AC自动机 zoj3228 Searching the String
传送门:点击打开链接题意:告诉你原串,告诉你很多个子串,有两种匹配模式,一种是可以重叠的匹配,一种是不能重叠的,问每个子串出现的次数。子串可能有重复的出现。思路:这题揭示了AC自动机的两种处理方法。首先是当AC自动机中出现有串重复的时候,我们应该怎么处理,我这里用到了一个数组pre,如果这个节点结尾的子串是第一次出现,pre标记为自己,如果这个节点结尾的子串不是第一次出现,那么就把pr原创 2015-10-25 16:26:33 · 911 阅读 · 0 评论 -
AC自动机+dp打印路径 hdu2296 Ring
传送门:点击打开链接题意:告诉你m个字符串,每个字符串有一个权值。再告诉你n,要求新的字符串长度小于等于n,现在求总权值最大的最小字典序字符串是多少思路:首先用AC自动机去把状态优化,然后列出dp方程,这些都是不难的,问题还在于打印路径上。由于要求字典序最小,但是实际上在AC自动机顺着插入的话,只能比较后缀,根本比较不了前缀,所以不是很好做。有的题解是插入字符串到AC自动机的时候就把它翻转原创 2015-10-24 16:00:49 · 898 阅读 · 0 评论 -
AC自动机+状压dp hdu2825 Wireless Password
传送门:点击打开链接题意:有个密码长度为n,现在有m个魔力单词,要求密码中魔力单词的种类数>=k,问这种密码的种类数。思路:和之前一样,我们会想到AC自动机去压缩状态,把状态给简化。然后我们就会想到一个问题,,因为一种种类实际上可能会出现很多次,但是统计的时候只统计一次,所以用普通的dp可能就做不到了,那么我们就必须考虑复杂度更高的方法,又看到m但是这题也有两个很容易TLE的问题,,首原创 2015-10-23 22:50:50 · 893 阅读 · 0 评论 -
AC自动机+快速矩阵幂 poj2778 DNA Sequence
传送门:点击打开链接题意:DNA只有AGCT四种脱氧核糖核苷酸组成,现在告诉你n条致病基因序列,,问长度为m的DNA序列里不含任何的致病基因的种类数是多少。思路:这题可谓是AC自动机的经典神题。。如果只是简单的认为AC自动机只不过是在文中匹配字符串那就打错特错了,它还可以用来压缩状态~这题我们先构想一下动态规划。如果我们没学过AC自动机,,现在假如致病基因的长度都为3.我们可能会这原创 2015-10-23 12:18:27 · 791 阅读 · 0 评论 -
AC自动机+base64解码 zoj3430 Detect the Virus
传送门:点击打开链接题意:告诉你邮件内容,告诉你病毒,问内容里有多少种类的病毒。一听就知道是裸AC自动机,,但是有两个很恶心的地方。。首先是base64解码,还是第一次手撸这个也是麻烦..另外一个很容易弄错的地方就是,有的语言字节是从0~255,其实C语言的字节是从0~127是正数,最高位表示的是负数了...所以说,base64解码后,可能有的字节是大于127的,所以我们不能用char类型来存原创 2015-10-23 12:01:30 · 853 阅读 · 0 评论 -
AC自动机+dp+大数 poj1625
传送门:点击打开链接题意:告诉你有哪些字符可以用,然后再告诉你哪些单词不能出现,要你求长度为m的字符串只由给你的字符组成,但是不能出现那些单词的种类数。思路:..一分析就发现,,貌似爆long long了,,醉了。。总的思路和那个DNA的思路是一样的,用AC自动机完成了矩阵的转移,很逆天的压缩了状态。。除了大数其他和那题基本一样的可以去看看那题..#include#include#原创 2015-10-23 11:56:02 · 849 阅读 · 0 评论 -
AC自动机 hdu2222 Keywords Search
传送门:点击打开链接题意:给一个字典,再给一个查询串,问字典中的单词一共在这个查询串中出现了多少次。思路:裸AC自动机。。第一次做,照着bin神代码写了个模板留着以后贴#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2015-10-21 14:48:41 · 809 阅读 · 0 评论 -
AC自动机+矩阵快速幂变形 CCF201509-5 最佳文章
传送门:点击打开链接题意: 大概就是告诉你一个字典,字典里字母总个数不超过100,要构造一个长度为m(思路:看数据大小,再根据做题的经验,很容易就想到AC自动机来优化状态,再用矩阵快速幂来优化dp,但是这题很特别。我们先把dp写出来dp[i][j]=max(dp[i-1][j可能的上一个状态])+End[j]i是长度,j是在AC自动机中的节点但是,我们能发现,一般的矩阵快速原创 2016-03-21 21:37:30 · 3590 阅读 · 5 评论 -
自动机+高斯消元 ifrog1025 Magic boy Bi Luo with his excited string problem
传送门:点击打开链接题意:告诉你n个串,现在随机写字符,直到之前的字典里某个差un是当前写的串的子串时停止,问期望次数是多少.思路:玲珑套路杯,求个自动机发现next数组就是接下来的状态,套个高斯消元就做完了..#include #include #include #include #include #include #include #include #include原创 2016-09-06 18:43:28 · 692 阅读 · 0 评论