-
确定性有限状态自动机... - [My OI]
2008年03月16日
这是一个神奇的叫做DFA的东西...
话说这东西应该比KMP复杂吧(单串匹配的DFA就是KMP啊...)?
KMP我一直没弄懂,可自从学了自动机,学会KMP了...
不过估计我即使写自动机也不写KMP...刚刚熬夜写完了一个DFA,半个小时,速度还可以.
不过出现了一些小小的错误,列表如下:1.BFS的时候,不幸把
trie[q[qe]].pre := trie[tmp].son[ch];
误写成了
trie[q[qe]].pre := trie[tmp].pre;
然后对比原来的程序才发现此错误...2.做匹配的时候,把
while (tmp <> 1) and (not trie[tmp].visit) do
写成了
while tmp <> 1 do
虽然正确性没有影响,但是速度会变慢些...3.最囧的一个错误:
读入的时候,我自己定的格式是,第一行n,第二行n个字符是母串;第三行m,接下来m行,每行任意多个字符,是匹配串.
结果,在处理那m行的时候,出现了小问题:我把
while not seekEoLn do begin
写作了
while not seekEoF do begin
结果只读入了一个匹配串...长度巨大...导致我的DFA挂掉...
监视之后才发现的错误...
可能是时间太晚了脑袋不清醒吧,以后可不能犯这错误...好了,说到这里...
刚想起Nxun的一个笑话,顺便提一句:
某人说:有的大牛直接拿过题目不看题,朝样例输入输出看了一眼,随便写了个程序,就AC了.
Nxun说:输入是1 1,输出是2...于是那人随便写了个程序...就AC了...拜仁0:2不敌科特布斯...
睡觉去~随机文章:
FIGHT 2008年07月25日[原创]Splay教程--The Magical Splay 2008年07月21日最后的战役 2008年07月16日eps! 2008年07月14日我回来了... 2008年06月03日

评论
画出能识别出下列三个语句的确定自动机DFA,并且写出这个确定自动机DFA对应的正则表达式。、
1.abcdef
2.abce
3.axyef
题目也可以改成如下:
有一个文法:
S->aA
A->bB|xH
B->cC
C->dD|eZ
H->yD
D->eE
E->fZ
其中S为开始符号,Z为结束符号。根据文法写画其NFA,然后确定化和最小化,最好写出最小化DFA对应的正则表达式,
(要求正则表达式要与DFA对应,关键注意路径)
(要求正则表达式要与DFA对应,关键注意路径) 我的qq:305909010
我想知道最后的正则表达式写法,谢谢!
不会这个东西
ACM不是有模板么...有什么好郁闷的^_^
不过这东西真的挺有用...