
字符串
star-city
蒟蒻OIer一枚
展开
-
KMP字符串匹配
KMP是一个单串匹配O(n)O(n)O(n)的算法,不同于Hash,这个是保证正确的。 什么是单串匹配呢?就是给你一个模式串P和一个文本串T,问P在T中的哪些位置出现过。 暴力做法就是把T的每个位置都跟P匹配一遍,复杂度为O(len(T)∗len(P))O(len(T)∗len(P))O(len(T)*len(P)),也就是O(nm)O(nm)O(nm)。 以下,因为公式化的引号(包括单引号...原创 2018-07-21 21:30:51 · 291 阅读 · 0 评论 -
AC自动机
自动AC机是什么?交上去就能AC? 要真是这样,那还要OI干什么。 AC自动机相当于是Trie上KMP,相对于KMP,解决多串匹配问题,但比KMP要简单,核心思想就是两句话。Code#include <iostream>#include <cstring>#include <cstdio>#include <queue&原创 2018-07-21 22:09:36 · 122 阅读 · 0 评论 -
manacher算法
和KMP一样,是个字符串算法,是个O(n)算法,同样也是个通过减少无意义匹配来降低复杂度的算法。 但哪里不一样呢? 哪儿都不一样。 解决的问题不一样,优化的方法和思路不一样,代码不一样,还有这个比KMP简单多了。 它解决的问题是这样的:给出一个字符串,求它以任意位置为中心的最长回文子串长度。这个任意位置可能是某个字符上(比如abcba中的c),也可能在两个字符中间(比如abba中间的两个b...原创 2018-07-21 23:30:27 · 540 阅读 · 0 评论 -
一些字符串(水)题
晚上不想写代码,就水一发博客吧qwq。P2444 [POI2000]病毒链接无限长的字符串就是能在ACAMACAMACAM上无限跑下去而不会撞到已有的字符串,所以建出ACAMACAMACAM判环即可。P3763 [TJOI2017]DNA链接建出SAMSAMSAM之后,由于可以有错误匹配的机会,所以我们可以考虑dpdpdp。令dp[i][j]dp[i][j]dp[i][j]表示匹配到i...原创 2019-01-03 19:30:54 · 287 阅读 · 0 评论