本篇文章主要详细介绍$AC$自动机的$fail$指针: 如果有什么不完善的地方,请联系我$qwq$ 前置知识: 1、建议学一下$kmp$算法 2、$Trie$ 导入: AC自动机是用来解决多模板匹配问题的,但是,如果就单纯的把每个模板串拼接在一起,或者单个单个匹配的话,肯定是会超时的,而它的思想是把 ...
分类:
其他好文 时间:
2018-12-13 14:59:36
阅读次数:
258
题面 题意:给你2个串(长度1e6),在第一个串里找“s1s2s3”,第二个串里找“s4”,拼接后,是一个回文串,求方案数 题解:知道s1和s4回文,s2和s3回文,所以我们枚举s1的右端点,s1的长度乘以s2起始点为左边界的回文串的数量,累加就是答案。 所以先求s1,再求以每个点为左边界的回文串的 ...
分类:
其他好文 时间:
2018-12-11 17:18:09
阅读次数:
188
Codeforces 每日刷题记录 打‘+’是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水。 1.+CF1073E:状压,数位dp,官方题解std骚操作 2.CF1072A 3.CF1072B 4.CF1072C 5.CF1068C:读题恶心 6.CF1073D:猜复杂度, ...
分类:
其他好文 时间:
2018-12-10 21:55:58
阅读次数:
415
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3796 先把三个串拼在一起,KMP 求 s1 , s2 中每个位置和 s3 的匹配情况; 注意拼三个串时加入的两个新字符不要一样,否则会影响; 然后预处理出每个位置后面的第一个 s3 的开头 — ...
分类:
编程语言 时间:
2018-12-08 11:19:28
阅读次数:
198
数据结构 - KMP 数据结构 - KMP 引言 & 介绍 由于李总说过串这一章只讲一个KMP, 所以我这里也就只说一个KMP算法了 KMP算法, 说得简单点就是关键字搜索 引言 & 介绍 由于李总说过串这一章只讲一个KMP, 所以我这里也就只说一个KMP算法了 KMP算法, 说得简单点就是关键字搜 ...
分类:
其他好文 时间:
2018-12-07 12:11:12
阅读次数:
195
字符串匹配 题目描述 设计一个程序,从一个主字符串中查找一个子字符串在主串中第一次出现的位置。主串和子串的长度不超过100。如果找不到,则输出-1. 程序输入说明 第一行输入一个整数N,说明需要进行匹配的实例数。第二行输入第一组需要进行匹配的主串第三行输入第一组需要匹配的子字符串。以下各行按照上面两 ...
分类:
其他好文 时间:
2018-12-06 15:23:26
阅读次数:
134
本文半原创 参考资料: "其实就是照抄的什么参考啊" 我们知道KMP可以用来在线性复杂度内进行制胡窜匹配 今天教您一种新方法:用FFT进行字符串匹配 您可能觉得这很玄学,FFT不是做多项式卷积的吗,怎么还可以做制胡窜匹配 您先别着急,请接着听 我们设两个字符串 模式串$a$,长度为$m$,文本串$b ...
分类:
其他好文 时间:
2018-12-04 21:09:32
阅读次数:
256
以下代码为第一步求最大前后缀所含字符个数的代码: 首先我们明确:next[i]存放的是前i个字符组成的字符串的最大相同前后缀长度 while(j>0 && str.charAt(j) != str.charAt(i))的意思是: 此时j的值为上一轮循环当中存放在next[i]中的值,即上一轮循环中前 ...
分类:
编程语言 时间:
2018-12-02 10:33:02
阅读次数:
142
最常见的枚举算法: 当我们要检测一个字符串是否为另一个的字符串的子串的时候,我们可以从两个字符串的头开始一个一个进行比对: 检测abd是否为abcabdc的子串: 第一步,将两个字符串从头开始,依次比较每一个字符: 发现第三个字符不相等,于是再进行第二次比对: 这次第一个字符就不相等,继续进行第三次 ...
分类:
编程语言 时间:
2018-12-02 10:27:42
阅读次数:
202
题意:让你把一个字符串反转,然后两个合并并去掉重复部分;就是求出末尾最长回文串; 题解:KMP;将原字符串反转,求出反转后的字符串的失配函数,然后与原字符串匹配; 参考代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define clr ...
分类:
其他好文 时间:
2018-12-01 13:04:45
阅读次数:
114