随笔分类 -  字符串

摘要:计数排序的原理,只要知道了有几个数比i小,就可以知道i的位置 这道题只有26个字母,搞26颗线段树,然后区间更新 阅读全文
posted @ 2016-08-09 11:44 Helica 阅读(231) 评论(0) 推荐(0) 编辑
摘要:这题现场的数据出水了,暴力就能搞过。 标解是拿bitset做,转移的时候用bitset优化过的操作(与或非移位)来搞,复杂度O(N*M/w) w是字长 第一份标程的思路很清晰,然而后来会T。 阅读全文
posted @ 2016-08-08 20:01 Helica 阅读(209) 评论(0) 推荐(0) 编辑
摘要:找出紧挨的三个回文串,例如abccbaabc ,形如ABA格式,其中AB为回文串。计算最长的长度。 首先用Manacher处理回文半径。然后就是找到两个点,都是偶数的回文串,并且共享了中间一段。 之后拿set搞一下就可以了= = 阅读全文
posted @ 2016-08-08 19:55 Helica 阅读(164) 评论(0) 推荐(0) 编辑
摘要:给定一个字符x和一个字符串。要求输出包含此字符的所有不同字串。 后缀数组可以计算一个字符串的所有不同字串,理解了原理就能做这题了。 对于每一个后缀i,将产生len-sa[i]-hight[i]的前缀,累加起来就是所有不同字串。这里要求字串必须包含x 也就是对于每一个后缀i,要减去不含x的前缀。 保存 阅读全文
posted @ 2016-08-06 00:04 Helica 阅读(160) 评论(0) 推荐(0) 编辑
摘要:寻找三元组(i,j,k),使得(i,j)(j,k)都是回文字串,其中i<=j<k. 可以发现,对于每一位i,只要预处理出来有多少个以i为右端的回文串和以i为左端的回文串。把那些串的另一端的坐标和计算出来就可以了。 然后ans = ∑cntR[i]*cntL[i+1] 这里cntR[i]记录以i为右端 阅读全文
posted @ 2016-08-05 19:17 Helica 阅读(216) 评论(0) 推荐(0) 编辑
摘要:1.manacher HDU5785 Interesting 2.kmp HDU5763-Another Meaning kmp记录子串数,dp转移意思数 3.后缀数组 HDU5769 Substring 4.hash (Rabin karp) 阅读全文
posted @ 2016-08-02 21:54 Helica 阅读(118) 评论(0) 推荐(0) 编辑
摘要:可重叠重复k次的最长子串长度。 还是使用二分答案对heigh数组分组的做法。 POJ 阅读全文
posted @ 2016-05-19 22:27 Helica 阅读(114) 评论(0) 推荐(0) 编辑
摘要:计算所都不相同子串的个数,做法是所有子串的个数减去sigma(height[]).其中height数组的和便是所有相同子串的个数。 注意 N×(N+1)/2会爆int!但是最终答案在int内。所以使用sigma(n-sa[i]+1-height[i])的做法不会wa 阅读全文
posted @ 2016-05-19 22:25 Helica 阅读(197) 评论(0) 推荐(0) 编辑
摘要:后缀数组处理最长公共子串问题。 将两个串接在一起,计算height的最大值。同时要保证sa[i]和sa[i-1]在不同的串当中。 阅读全文
posted @ 2016-05-18 20:57 Helica 阅读(182) 评论(0) 推荐(0) 编辑
摘要:后缀数组国家集训队论文 论文上讲的很清楚。 最长不重叠重复子串问题。首先二分答案,对于每一个mid长度,按照后缀的height大于mid对height数组分组。 可以证明,答案在同一个height当中。维护每一组的最大最小sa值,差便是每一组的最大不重叠重复子串长度。如果大于mid就return t 阅读全文
posted @ 2016-05-18 20:55 Helica 阅读(192) 评论(0) 推荐(0) 编辑
摘要:哈希后,对每片雪花对比6次。 阅读全文
posted @ 2016-03-15 21:56 Helica 阅读(321) 评论(0) 推荐(0) 编辑
摘要:有两段字符串,第一段的尾和第二段的头可能重合。问有多少种组合的可能。 需要理解一下next数组的意义。 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 10 阅读全文
posted @ 2016-02-17 23:15 Helica 阅读(170) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3065需要记录匹配情况的AC自动机,没有清空一些数组导致wa了几发。/*-----------------------------------------------------------------------... 阅读全文
posted @ 2015-12-11 00:42 Helica 阅读(246) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2896另一道AC自动机的模板题,不过这题需要记录一下具体的匹配情况。/*-----------------------------------------------------------------------... 阅读全文
posted @ 2015-12-11 00:39 Helica 阅读(301) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2222一个AC自动机的模板题。用的kuangbin的模板,静态建Trie树。可能遇到MLE的情况要转动态建树。AC自动机的讲解看这里http://blog.csdn.net/niushuai666/article/... 阅读全文
posted @ 2015-12-11 00:36 Helica 阅读(187) 评论(0) 推荐(0) 编辑
摘要:这个有点意思,要理解失配数组题意是要计算出需要构造成循环节相连的最小个数利用失配构造函数求出单个循环节,然后计算出需要的加上的珠子个数 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include... 阅读全文
posted @ 2015-08-14 16:45 Helica 阅读(212) 评论(0) 推荐(0) 编辑
摘要:纯KMP 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 13 14 15 us... 阅读全文
posted @ 2015-08-14 16:41 Helica 阅读(269) 评论(0) 推荐(0) 编辑
摘要:纯KMP 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 13 14 15 us... 阅读全文
posted @ 2015-08-14 16:40 Helica 阅读(201) 评论(0) 推荐(0) 编辑
摘要:纯KMP,入门题,不知道读入挂加朴素匹配能不能过 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #in... 阅读全文
posted @ 2015-08-14 16:39 Helica 阅读(272) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示