E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
AC自动机
AC自动机
学习
今天包括这一周开始学习
AC自动机
了,有点晚,但我感觉努努力还来得及。4月份还得认认真真攻图论,加油! 为2个月后的邀请赛及省赛、东北赛做准备。
·
2015-11-11 14:35
AC自动机
AC自动机
模板代码
1 #include <iostream> 2 using namespace std; 3 const int kind = 26; 4 struct node{ 5 node *fail; //失败指针 6 node *next[kind]; //Tire每个节点的26个子节点(最多26个字母) 7 int count; //是否为该单词的最后一个节点
·
2015-11-11 13:17
AC自动机
【HDU 2222】Keywords Search
以前学了trie之后就停止搞字符串这方面了,因为今年NOI出现了
AC自动机
,所以要学习一下。 这个题目的代码很多,我只是贴出来纪念一下第一道
AC自动机
,我也是跟别人学的。
·
2015-11-11 12:15
search
HDU 3901 Wildcard
简要分析: 翻了网上盛传的一份讲
AC自动机
的论文(总觉得是生物论文), 学习了带通配符的匹配.
·
2015-11-11 11:11
HDU
POJ 3691 DNA repair
简要分析: 有赤裸裸的多模式串匹配, 当然要建立
AC自动机
了. 把一些状态标成致病态(当然把fail指针的信心合并过来).
·
2015-11-11 11:10
AIR
POJ 1816 Wild Words
简要分析: 带通配符
AC自动机
? 不是的, 看字符串的长度都那么小, 暴力一下就可以了. 把所有模式串丢到Trie里面, *和?
·
2015-11-11 11:09
word
hdu 3695:Computer Virus on Planet Pandora(
AC自动机
,入门题)
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 256000/128000 K (Java/Others)Total Submission(s): 2578 Accepted Sub
·
2015-11-11 11:32
AC自动机
zoj3228Searching the String(
ac自动机
)
链接 这个题把病毒分为了两种,一种包含可以覆盖,另一种不可以,需要分别求出包含他们的个数,可以把两种都建在一颗tire树上,在最后求得时候判断一下当前节点是属于哪种字符串,如果是不包含的需要判断一下pre[i]+len[i]<=当前位置。 注意会有重复字符串,可以先map处理一下。 1 #include <iostream> 2 #include<c
·
2015-11-11 10:06
String
HDU 4057 Rescue the Rabbit(
AC自动机
+DP)
题目链接 一个数组开小了一点点,一直提示wa,郁闷,这题比上个题简单一点。 1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 #include <queue> 5 #include <algorithm> 6 #incl
·
2015-11-11 10:27
AC自动机
HDU 4534 郑厂长系列故事——新闻净化(
AC自动机
+DP)
在
AC自动机
构造关系的时候,开始只注意了-999的转移,然后慢慢debug后+上
·
2015-11-11 10:26
AC自动机
POJ 3691 DNA repair(
AC自动机
+DP)
做题之前,把2778代码重新看了一下,回忆一下当时做题的思路,回忆
AC自动机
是干嘛的... 状态表示dp[i][j]长度为i的以j串为结束的最小改变数目。
AC自动机
预处理一下,然后DP。
·
2015-11-11 10:26
AC自动机
AC 自动机
原文:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html 感谢极限定理的详细解答,对于
AC自动机
终于算是弄明白了。
·
2015-11-11 10:04
自动
hdu 3065 病毒侵袭持续中
AC自动机
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3065 小t非常感谢大家帮忙解决了他的上一个问题。然而病毒侵袭持续中。在小t的不懈努力下,他发现了网路中的“万恶之源”。这是一个庞大的病毒网站,他有着好多好多的病毒,但是这个网站包含的病毒很奇怪,这些病毒的特征码很短,而且只包含“英文大写字符”。当然小t好想好想为民除害,但是小t从来不打没有准备的战争
·
2015-11-11 09:26
AC自动机
hdu ----3695 Computer Virus on Planet Pandora (
ac自动机
)
Computer Virus on Planet Pandora Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 256000/128000 K (Java/Others)Total Submission(s): 2975 Accepted Sub
·
2015-11-11 08:39
AC自动机
hdu----1686 Oulipo (
ac自动机
)
Oulipo Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6227 Accepted Submission(s): 2513 Problem De
·
2015-11-11 08:38
AC自动机
AC自动机
专题
全名: Aho-Corasick 自动机, 类似 Trie + next函数 写法: 动态 / 静态, 个人比较偏向与静态 内容: 网上一大堆,我是看的 LRJ新版白书214页 静态模板: // Aho-Corasick #include<cstdio> #include<cstdlib> #include<
·
2015-11-11 06:35
AC自动机
hdu 4117 GRE Words (
ac自动机
线段树 dp)
参考:http://blog.csdn.net/no__stop/article/details/12287843 此题利用了
ac自动机
fail树的性质,fail指针建立为树,表示父节点是孩子节点的后缀
·
2015-11-11 04:09
AC自动机
HDU 2825 Wireless Password(
AC自动机
+DP)
题目链接 做题, 1 #include <cstdio> 2 #include <string> 3 #include <cstring> 4 using namespace std; 5 #define MOD 20090717 6 int trie[351][26]; 7 int o[351]; 8 int
·
2015-11-11 04:30
password
HDU 4758 Walk Through Squares(
AC自动机
+DP)
题目链接 难得出一个
AC自动机
,我还没做到这个题呢。。。这题思路不难想,小小的状压出一维来,不过,D和R,让我wa死了,
AC自动机
,还得刷啊。。。
·
2015-11-11 04:28
AC自动机
CF 346B. Lucky Common Subsequence(DP+KMP)
其实是
AC自动机
+DP的感觉,但是只有一个串,用kmp就行了。
·
2015-11-11 04:27
sequence
BZOJ 1009 GT考试(
ac自动机
+矩阵DP)
思路:(1)将s插入trie建立
ac自动机
。(2)以自动机中的状态作为节点,建立矩阵A[i][j],A[i][j]=1表示j节点为合法状态,也就是能向j转移。
·
2015-11-11 03:24
AC自动机
UVA 11468 Substring(
ac自动机
+DP)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2463 题意:给出一个字母表以及每个字母出现的概率。再给出一些模板串S。从字母表中每次随机拿出一个字母,一共拿L次组成一个产度为L的串,问这个串不包含S中任何一个串的概率为
·
2015-11-11 03:23
substring
UVA 11019 Matrix Matcher(
ac自动机
)
思路:将S的每行看做一个串插入
ac自动机
。用T的每一行去匹配。那么我们可以得到
·
2015-11-11 03:23
Matcher
BZOJ 3172 单词(
ac自动机
)
思路:首先将所有单词插入到
ac自动机
,记录每个节点次数cnt。建立自动机。然后按照建立自动机的顺序,对于节点u以及其fail节点v,cnt[v]+=cnt[u]。
·
2015-11-11 03:21
AC自动机
poj2778DNA Sequence (
AC自动机
+矩阵快速幂)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Desc
·
2015-11-11 02:15
sequence
UVALive 4670 Dominating Patterns --
AC自动机
第一题
解法:
AC自动机
入门模板题。
·
2015-11-10 23:19
Pattern
hdu 2222(
AC自动机
)
参考:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html 1 /* 2 *
AC自动机
3 */ 4 #include
·
2015-11-10 23:43
AC自动机
hdu 2896(
AC自动机
)
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <iostream> 5 6 using namespace std; 7 8 const int N = 205; 9 const int L =
·
2015-11-10 23:43
AC自动机
zoj3430Detect the Virus(
ac自动机
)
链接 解码之后是跟普通的自动机求解一下的,只不过解码比较恶心,512=》N》=0 ,所以不能用字符串来存,需要转换成整数来做。 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #includ
·
2015-11-10 22:09
AC自动机
zoj3494BCD Code(
ac自动机
+数位dp)
l链接 这题想了好一会呢。。刚开始想错了,以为用自动机预处理出k长度可以包含的合法的数的个数,然后再数位dp一下就行了,写到一半发现不对,还要处理当前走的时候是不是为合法的,这一点无法移到trie树上去判断。 之后想到应该在trie树上进行数位dp,走到第i个节点且长度为j的状态是确定的,所以可以根据trie树上的节点来进行确定状态。 dp[i][j]表示当前节点为i,数第j位时可以包含多少
·
2015-11-10 22:08
AC自动机
hdu3341Lost's revenge(
ac自动机
+dp)
链接 类似的dp省赛时就做过了,不过这题卡内存,需要把当前状态hash一下,可以按进制来算出当前的状态,因为所有的状态数是不会超过10*10*10*10的,所以完全可以把这些存下来。 刚开始把trie的的遍历节点写在外层循环了,一直WA,后来想了一下,状态是只会向前走的,但是节点不一样,如果由 当前节点的状态-》下一节点的状态,下一节点有可能是在当前节点之前的,这样是不对的,所以需要由当前状态
·
2015-11-10 22:07
AC自动机
hdu3247Resource Archiver(
ac自动机
+spfa)
链接 这题没想到怎么做,问了下p队长,大悟。。 先求出任意两串的在trie树上的最短距离,期间是不能走到不合法的地方,我是用spfa求得,在更新和加入节点时判断一下是不是合法位置。 求出最短距离之后,找出一条从0出发遍历所有串的最短距离,可以dp出,dp[i][j]表示当前状态以节点j串结尾的最短距离。 枚举一下最后结尾的为哪一个串时距离最短。 1 #include <
·
2015-11-10 22:07
resource
hdu4511小明系列故事——女友的考验(
ac自动机
+最短路)
链接 预处理出来任意两点的距离,然后可以顺着trie树中的节点走,不能走到不合法的地方,另开一维表示走到了哪里,依次来更新。 注意判断一下起点是不是合法。 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm&g
·
2015-11-10 22:06
AC自动机
hdu4758Walk Through Squares(
ac自动机
+dp)
链接 dp[x][y][node][sta] 表示走到在x,y位置node节点时状态为sta的方法数,因为只有2个病毒串,这时候的状态只有4种,根据可走的方向转移一下。 这题输入的是m、N,先列后行,因为输反了,WA了N次啊。。 1 #include <iostream> 2 #include<cstdio> 3 #include<cst
·
2015-11-10 22:05
AC自动机
zoj3228Searching the String(
ac自动机
)
链接 这个题把病毒分为了两种,一种包含可以覆盖,另一种不可以,需要分别求出包含他们的个数,可以把两种都建在一颗tire树上,在最后求得时候判断一下当前节点是属于哪种字符串,如果是不包含的需要判断一下pre[i]+len[i]<=当前位置。 注意会有重复字符串,可以先map处理一下。 1 #include <iostream> 2 #include<c
·
2015-11-10 22:04
String
hdu4057Rescue the Rabbit(
ac自动机
+dp)
链接 当时是因为没有做出来这道题才开了自动机的专题,现在看看还是比较简单的。 因为每个病毒串只算一次,只有10个病毒串,可以状压一下哪些状态是可以达到的,最后取一个最大值。 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<al
·
2015-11-10 22:04
AC自动机
hdu2457DNA repair(
ac自动机
+dp)
链接 从开始节点往下走,不能走到病毒节点,如果当前状态与原始串不一样就+1,取一个最小值. 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h>
·
2015-11-10 22:03
AC自动机
hdu2296Ring(
ac自动机
+dp)
链接 dp[i][j]表示长度为i在节点J的时候的权值最大值,根据trie树转移一下就行,需要每次都取最小的,所以需要另开一数组保存字典序最小的状态。 1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm>
·
2015-11-10 22:02
AC自动机
poj2778DNA Sequence(
AC自动机
+矩阵乘法)
链接 看此题前先看一下matrix67大神写的关于十个矩阵的题目中的一个,如下: 经典题目8 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2
·
2015-11-10 22:00
sequence
(
AC自动机
+dp)
链接 第一次做这种题目,参考了下题解,相当于把树扯直了做DP,估计这一类题都是这个套路吧。 状态方程dp[i][next] = dp[i][next]+dp[i][j] ;dp[i][j]表示长度为i的第J个结点的时候满足题意的num,next为当前j点所能走到的下一个合法的结点。 需要用高精度,看到一些规范的高精度写法,觉得不错,有空整理下来。 不知道是不是我理解错了,按理说字符串病毒长
·
2015-11-10 22:59
AC自动机
hdu2896病毒侵袭(
ac自动机
)
链接
ac自动机
的模板题 说2个注意的地方 一是题目说明包含所有ASCII字符,可以开到0-127 包含空格 题目会输入多个源串,在加完当前的val值时,不应清0,可以开个标记数组。
·
2015-11-10 22:58
AC自动机
AC自动机
模板
贴份模板 胡大神和崔大神的组合模板 #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> #include<vector> #include<cmath> #in
·
2015-11-10 22:57
AC自动机
HDU 2243 考研路茫茫——单词情结(
AC自动机
+DP+快速幂)
题目链接 错的上头了... 这题是DNA的加强版,26^1 +26^2... - A^1-A^2... 先去学了矩阵的等比数列求和,学的是第二种方法,扩大矩阵的方法。剩下就是各种模板,各种套。 #include <cstdio> #include <cstring> #include <iostream> #include <map&
·
2015-11-10 22:26
AC自动机
杭电2896题
AC自动机
模板题
AC自动机
的一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。
dtwd886
·
2015-11-10 21:00
AC自动机
数据结构 文学研究助手(
AC自动机
)
最近两天都在做
AC自动机
,刚好数据结构实验可以用,比KMP算法好的地方是文章只要扫描一遍,大大节省了时间,但同时占的内存变大了,简单地说就是,空间换时间。
L954688947
·
2015-11-09 20:00
hdu3065 病毒侵袭持续中(
AC自动机
)
题目点我点我点我题意:给你一些字符串,再给你一个长字符串,问之前的那些字符串分别出现过几次,按输入的顺序输出字符串和其出现次数。跟上题有一点点变化,主要是主串有可能有不是字母,查询时注意一下就可以了。另开一个数组作为记录每个模式串的次数。#include #include #include #include #include #include #include #include usingname
L954688947
·
2015-11-09 18:00
ZOJ 3430 Detect the Virus 【
AC自动机
+解码】
解码的那些事儿,不多说。 注意解码后的结果各种情况都有,用整数数组存储,char数组会超char类型的范围(这个事最蛋疼的啊)建立自动机的时候不能用0来判断结束。 #include <cstdio> #include <algorithm> #include <cstring> #include <queue> #i
·
2015-11-09 14:15
AC自动机
HUSTOJ 1609 AntiVirus(
AC自动机
)
题目链接:http://acm.hust.edu.cn/problem.php?id=1609 题意:给出n个短串和一个长串,求长串中包含了多少个短串? 思路:首先将长串变短,因为每个字母连续出现的次数最多是n个串中该字母最长的次数。然后将n个串建立自动机。 const int MAX=1000005; int C; char s[MAX],s1[MAX*150],str[
·
2015-11-09 14:00
AC自动机
AC自动机
算法详解
FROM:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html 摘自: http://www.cppblog.com/mythit/archive/2009/04/21/80633.html http://apps.hi.baidu.com/share/detail/16394130 ------------
·
2015-11-09 13:30
AC自动机
[
AC自动机
]题目合计
我只是想记一下最近写的题目而已喵~ 题解什么的才懒得写呢~ [poj 1625]Censored! 这题注意一个地方,就是输入数据中可能有 ASCII 大于 128 的情况,也就是说用 char 读入时,这个字符的值为负数,真是 RE 了好久…… 可以像我一样 map 党,你也可以把每个 s[i] 都加上 128 1 #include <cst
·
2015-11-09 13:26
AC自动机
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他