随笔分类 - 字符串
摘要:还是不会马拉车啊.今天又学了一遍,在这里讲一下. 其实就是一个很妙的思路,就是设置一个辅助的数组len,记录每个点的最大对称长度,然后再存一个mx记录最大的对称子串的右端点.先开二倍数组,然后一点点扩大.有两种情况,一种i比mx大,这种只好暴力匹配了.还有一种就是i<mx,然后比较mx-i和len[
阅读全文
摘要:这是一道简单版的AC自动机,之前我搞过一个这个东西,但是没具体学习,现在来学一下。 其实就是一个trie树上跑的kmp,每个节点存一个fail指针,指向前一次出现的地方。查询的时候直接加一起就行了。 题干: 代码:
阅读全文
摘要:manacher是一种处理字符串的算法,用来判断最长的回文串的长度. 主要思路就是要让指针跳跃就行了,mid和maxright,分别代表对称轴和最左边的位置.再搞一个存最长串的东西,来回更新答案. (其实就是乱搞暴力) 题干: 代码:
阅读全文
摘要:上个假期就学了KMP,但是基本不用,所以忘干净了。。。这个的核心思想就是next数组,next数组学名叫最长相同前缀后缀。还不错的算法,KMP 匹配的过程中比原来的暴力匹配多了一个跳来跳去的next。 下面有一个链接:从头到尾KMP,写的很棒,很好懂! 贴板子代码:(自己写的注释,有可能不对,欢迎指
阅读全文
摘要:#include<bits/stdc++.h>using namespace std;const int maxn = 1e7 + 5;const int MAX = 10000000;int cnt;struct node{ node *next[26]; node *fail; int sum;
阅读全文
摘要:trie树,又名单词查找树。集训里有,就提前学了一下,不多说,直接贴代码。(但我感觉和普通树没什么区别。。。)
阅读全文

浙公网安备 33010602011771号