随笔分类 -  字符串——字符串匹配

摘要:"[SDOI2014]数数" 这题是AC自动机与各种dp相结合的范例。 首先,按照套路,我们建出~~自动AC机~~。然后,因为是$\le N$的所有数的总数,很容易想到 数位dp (实际上它如果是在$L,R$之间所有数的总数则更明显)。 令$f_{x,len,lim}$表示: 在自动机上$x$号节点 阅读全文
posted @ 2020-04-26 17:42 Troverld 阅读(162) 评论(0) 推荐(0)
摘要:"CF GYM101741K. Consistent Occurrences" 题意:给你一个长度为$n$的串$s$,以及$m$次询问,每次给出一个串$t$,询问$t$在$s$中最多出现了多少次(出现不能重叠)。 联想到前一题,我们可以将询问建树。 我们可以自然地想到,当匹配成功后,直接跳回根节点( 阅读全文
posted @ 2020-04-26 17:41 Troverld 阅读(157) 评论(0) 推荐(0)
摘要:"[JSOI2012]玄武密码" 一开始千方百计地想要对那个“母串”进行什么处理,最后也没有想出点什么。 后来发现这道题有点误导性,它没有说是“模式串”,而说是“询问”,因此就比较恶心。 闲话少说,这题正解是将“询问”离线建~~自动AC机~~,然后将“母串”丢进去匹配。(就是最模板的操作) 最后将“ 阅读全文
posted @ 2020-04-26 17:39 Troverld 阅读(117) 评论(0) 推荐(0)
摘要:"[POI2000]病毒" 只要前面那道文本生成器会的话,这题应该很简单了。 建树方法一模一样,甚至连求$ok$都一模一样。 之后采取dfs爆搜答案。 从根开始,只走$ok=true$的儿子,如果走出一个环,那就有合法串(把环的部分提取出来,在任意地方断环成链,再复制粘贴无数遍,就是一个合法的无限长 阅读全文
posted @ 2020-04-26 17:38 Troverld 阅读(126) 评论(0) 推荐(0)
摘要:"[JSOI2007]文本生成器" 第一题自己没看题解就做出来的~~自动AC机~~题祭。 一眼看出这道题正着求不好求,必须反过来,用总方案数 不合法方案数=合法方案数。 任意一种不合法的方案,在AC自动机上$merge$时,所遍历到的每一个节点,必定都不是任何串的结尾节点,同时它在$fail$树上的 阅读全文
posted @ 2020-04-26 17:37 Troverld 阅读(131) 评论(0) 推荐(0)
摘要:"[HNOI2006]最短母串问题" 好题。 首先建立AC自动机。~~然后就不会了。~~ 观察到$n$很小,是状压的级别。 考虑将自动机中的$fin$变量升级为$state$变量,表示从当前节点出发,能否到达各字符串。 则$ins$时,有 阅读全文
posted @ 2020-04-26 17:36 Troverld 阅读(139) 评论(0) 推荐(0)
摘要:"[NOI2011]阿狸的打字机" 这题可以大大加深我们对~~自动AC机~~的理解。 一上来:哇,这是什么神仙读入啊,如果按照它的要求一个一个把所有串建出来的话,肯定会MLE呀! 后来想一想,它这么读入,肯定构成一棵树,并且,它刚好是字典树! 这里是建树的方法。 阅读全文
posted @ 2020-04-26 17:34 Troverld 阅读(132) 评论(0) 推荐(0)
摘要:"[TJOI2013]单词" 近乎模板,只要暴力建树,再把每个字符串丢进去匹配就可以了。 我一开始写了非拓扑的代码,结果最后一个点T了。 不得不改成了拓扑。 另外,这题需要保存字符串信息,为了避免MLE,我们把所有东西全都压成一个大串。 代码: 阅读全文
posted @ 2020-04-26 17:31 Troverld 阅读(110) 评论(0) 推荐(0)
摘要:VII. "CF954I Yet Another String Matching Problem" ~~FFT做字符串匹配就是有意思~~ 我们首先必须要搞清楚暴力匹配是什么样的过程。 例: | 位置 | 0 | 1 | 2 | 3 | | : : | : : | : : | : : | : : | 阅读全文
posted @ 2020-04-25 11:47 Troverld 阅读(161) 评论(0) 推荐(0)
摘要:VI. "CF528D Fuzzy Search" 照旧分字符处理。 首先,我们可以算出每个字符是否可以填入每个位置。 例如,当文本串为$AGGACC,k=1$时,以下这张表表示了每个位置是否可以填入每个字符: ||0|1|2|3|4|5| | : : | : : | : : | : : | : : 阅读全文
posted @ 2020-04-22 22:15 Troverld 阅读(105) 评论(0) 推荐(0)
摘要:V. "[计蒜客 A1676]Rock Paper Scissors Lizard Spock" 我们设两个串分别为模式串$s$和文本串$t$,长度分别为$S$和$T$,下标从$0$开始。 我们可以枚举当前出的手势。将$s$中所有是当前手势的位置赋成$1$,不是当前手势的位置赋成$0$。将$t$中所 阅读全文
posted @ 2020-04-22 22:14 Troverld 阅读(135) 评论(0) 推荐(0)
摘要:IV. "UVALive4671 K neighbor substrings" 因为是$AB$串,所以我们之前II. "残缺的字符串" 的式子中$t_i s_i$的值只有可能为$ 1,0,1$。这样的话,直接平方后,判别式给出的结果就是题目中的‘Hamming distance’,即不同字符数。 但 阅读全文
posted @ 2020-04-22 22:13 Troverld 阅读(131) 评论(0) 推荐(0)
摘要:残缺的字符串 莫名其妙最后三个点总是T……但是代码是没问题的。 我们设两个串分别为模式串$s$和文本串$t$,长度分别为$S$和$T$,下标从$0$开始。 先考虑没有通配符的情形。 则如果在$t$串中以位置$x$结尾的$S$个字符可以与串$s$匹配的话,必有$\sum_^t_{x+i-S-1}-s_ 阅读全文
posted @ 2020-04-22 22:11 Troverld 阅读(124) 评论(0) 推荐(0)