![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-----------strings------------
Iking123
这个作者很懒,什么都没留下…
展开
-
回文串问题的克星——Palindrome Tree(回文树)/Palindrome Automaton(回文自动机)学习小记
前言 最近B组有一道我不会的题,赶紧学习。简介 我们知道,Manacher算法可以在O(n)O(n)O(n)的时间内求出以每个位置为中心的最长回文串(虽然我昨天还不知道Manacher算法是怎么做的)。但是如果要统计回文串的个数,Manacher就捉襟见肘了。于是,回文自动机闪亮登场! 回文自动机是解决回文串问题的一类数据结构。 这个数据结构比较新,是由来自战斗民族...原创 2018-02-03 11:22:19 · 4770 阅读 · 1 评论 -
【JZOJ4372】【GDOI2016模拟】识别子串(SAM+线段树)
Problem 给定一个长为L(≤100000)的字符串S,对于S中的每一个位置k,求包含它且在S中仅出现一次的子串的最短长度。(即i≤k≤j,且S(i..j)在S中仅出现一次)Solution这道题的AC经历让我懂得了一个道理——做字符串的题,只要不是哈希,就往SAM的方面想。。。预备知识:后缀自动机(SAM)。 首先,我们知道,SAM中的每一个状态表示一坨长度...原创 2018-07-13 21:22:38 · 357 阅读 · 0 评论 -
【JZOJ4644】【NOI2016模拟7.16】人生的经验 (hashing+欧拉回路)
Problem 定义人生经验为长度为l,字符集大小为c的所有字符串,求一个最短的包含所有人生经验的字符串。HintSolution 这道题教会我们要善于猜结论熟练掌握欧拉回路。(其实我比赛时猜到是欧拉回路了,只不过忘了欧拉回路怎么破)不太懂欧拉回路的可以考虑戳一戳这里。 首先来算一下答案长度。 char的大小为1bytes,10MB=10485760...原创 2018-07-04 21:56:02 · 614 阅读 · 0 评论 -
【JZOJ4645】【NOI2016模拟7.16】基因改造计划(Manacher+主席树)
Problem 给定一个长度为n的字符串S和m个询问,每次询问给出区间[l,r],求区间S[l..r]内回文子串的个数。HintSolution20points:Manacher or 回文自动机 第0~3个点的n*m较小,我们可以直接把询问区间提取出来,O(n)O(n)O(n)做一遍Manacher或者回文自动机。 时间复杂度:O(nm)O(nm)O...原创 2018-07-03 19:17:48 · 244 阅读 · 0 评论 -
【JZOJ4121】【THUSC2015】异或问题(可持久化trie)
Problem 给定长度为n的数列X={x1,x2,…,xn}和长度为m的数列Y={y1,y2,…,ym},令矩阵A中第i行第j列的值Aij=xi xor yj。给出p个询问,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出第k大的Aij。Hint对于100%的数据,0<=Xi,Yj<2^31, 1<=u<=d<=n<=1000, ...原创 2018-05-24 19:03:19 · 194 阅读 · 0 评论 -
【JZOJ4126】【SDOI2015】双旋转字符串(KMP+哈希)
Problem 给出两个字符串集合 S 和 T,S中的所有字符串长度都为N,T中的所有字符串长度都为M,且N+M为偶数。 S中有TotalSTotalSTotal_S个字符串,T中有TotalTTotalTTotal_T个字符串。每次从 S 和 T 中各选一个串将它们拼接起来,问有多少种方案满足,把这个拼起来的串分成两半后,分成的两个串是循环同构串。HintSolu...原创 2018-05-28 16:55:55 · 305 阅读 · 0 评论 -
【JZOJ4022】【CF319D】Have You Ever Heard About the Word?(哈希)
Problem 有一个字符串S(|S| ≤ 50000),每次你需要找到最短的形如XX(可以在中间被分成相同的两份)的子串,有多个最短的则选取最左边的,并删除其中的一份(XX → X)。输出最终字符串。Solution 这道题我一看,感觉可能是SAM之类的东西,想了半天也没想出个什么来,于是就打了个O(n3)O(n3)O(n^3)的暴力。正解是哈希。RMQ:65poin...原创 2018-03-27 19:03:54 · 221 阅读 · 0 评论 -
【JZOJ3962】【NOI2015模拟12.27】str(回文自动机)
Problem 给出一个字符串,求这个串中本质不同的回文子串个数以及这些本质不同的回文子串中第K小的串。InputOutputHintSolution 首先,我们发现它要求本质不同的回文子串个数,于是马上联想到回文自动机。看看数据,10510510^5,非常稳。于是第一问就用回文自动机解掉。不知道回文自动机的戳这里→这里写链接内容 那么...原创 2018-03-10 16:43:55 · 259 阅读 · 0 评论 -
【JZOJ3336】【NOI2013模拟】坑带的树(圆方树+计数问题+hashing)
Problem 定义仙人掌树为:1)无向图;2)每个点最多在一个简单环中。给定一棵N(≤1000)个点、M条边的仙人掌树(保证没有重边),求这棵仙人掌树的同构数量。Solution首先,将原仙人掌转化成一棵圆方树。因为对于每个仙人掌,都有且仅有一棵对应的圆方树,故原题可转化为这棵圆方树的同构数量。不能使用普通的树的同构的计数方法。因为对于普通的树,其形态相同的子树均可随意换位...原创 2018-07-15 07:42:58 · 490 阅读 · 0 评论