随笔分类 - 字符串
摘要:题目传送门题意:对一个字符串求一个最长的子串使得它至少出现k次额,因为这个题目呢,他的字符集非常大(100W)所以直接用SAM是不行了,我们考虑用离散化+SA,让后就可以分块rmq了当然这样很麻烦,我们还是用SAM,但是儿子集合用map来存,这样空间就是O(n)的,时...
阅读全文
摘要:题目传送门题意:对一个序列的差分求出现至少两次且两次不相交的最长子串也是SA和SAM都可以做,SA稍微麻烦SA做法:二分+height分段rmqSAM做法(太神了):对于每个节点的right集合,求出其中的最大值和最小值那么合法的长度一定为min(mx[x],r[x]...
阅读全文
摘要:题目传送门题意:求两个字符串的LCS这个题是SA的经典题,也是SAM的经典题SA做法:连接两个字符串(中间加个#)让后求height,Answer=Max{height[i]}SAM做法:从开头匹配字符串,如果当前节点x能继续匹配就继续如果不能匹配,就令x=f[x]直...
阅读全文
摘要:题目传送门AC自动机第一题~一看就是一个非常简单的多串匹配问题了,输出方案?记录一下就好了注意这里code是Trie图,它是AC自动机的改进版本,有效利用了原本无用的边,这反而简化了代码#include#include#include#include#define N...
阅读全文
摘要:最近教练叫我去讲字符串专题,于是来写一写这方面的内容主要就讲以下几个吧:1.Kmp 2.Extended Kmp3.Trie4*.AC Automation (Trie Graph)5*.String Hash6.Suffix Array7*.Suffix Autom...
阅读全文
摘要:nodgd写了一篇文章,自认为这是一篇好文章。nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了向大家证明这是一篇好文章,nodgd决定给自...
阅读全文
摘要:nodgd写了一篇文章,自认为这是一篇好文章。nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了向大家证明这...
阅读全文
摘要:nodgd家里种了一棵树,有一天nodgd比较无聊,就把这棵树画在了一张纸上。另一天nodgd更无聊,就又画了一张。这时nodgd发现,两次画的顺序是不一样的,这就导致了原本的某一个节点u0在第一幅图中编号为u1,在第二副图中编号为u2。于是,nodgd决定检查一下他...
阅读全文
摘要:nodgd家里种了一棵树,有一天nodgd比较无聊,就把这棵树画在了一张纸上。另一天nodgd更无聊,就又画了一张。这时nodgd发现,两次画的顺序是不一样的,这就导致了原本的某一个节点u0在第一幅图中编号为u1,在第二副图中编号为u2。于是,nodgd决定检查一下他...
阅读全文
摘要:邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。 707获取了人类的基因信息并尝试...
阅读全文
摘要:邪恶的707刚刚从白垩纪穿越回来,心中产生了一个念头:我要统治人类! 但是统治人类是很庞大且复杂的一个工程,707尝试了洗脑,催眠,以及武装镇压都没能成功地统治人类,于是她决定从科学上对人类的基因进行研究从而达到他的目的。 707获取了人类的基因信息并尝试...
阅读全文
摘要:这个题废话真多题面好长首先看懂题意大概就做完了,完全就是模拟嘛#include#include#includeusing namespace std;int l[100]={0},w[100]={0},r[100]={0};char s[100...
阅读全文
摘要:这个题废话真多题面好长首先看懂题意大概就做完了,完全就是模拟嘛#include#include#includeusing namespace std;int l[100]={0},w[100]={0},r[100]={0};char s[100...
阅读全文
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f...
阅读全文
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f...
阅读全文
摘要:其实就是在求有几对完全相等子串满足长度小于等于k而已很明显打一个sam就好了,条件就是mx[f[p]]#include#include#define N 200010 using namespace std;char str[N]; long long A=0;int...
阅读全文
摘要:其实就是在求有几对完全相等子串满足长度小于等于k而已很明显打一个sam就好了,条件就是mx[f[p]]#include#include#define N 200010 using namespace std;char str[N]; long long A=0;int...
阅读全文
摘要:题意:求出现次数*长度最大的回文串很水的一道题直接用回文树可以切了太菜并不会回文树,用了极慢的sam+manachermanacher求出所有回文子串用sam在parent树上面倍增就可以求出一个串的出现次数,manacher是O(n)的,倍增lgn,整体复杂度nlg...
阅读全文