山东济南彤昌机械科技有限公司 山东济南江鹏工贸游有限公司

随笔分类 -  后缀数组

[OI]省选前模板整理
摘要:省选前把板子整理一遍,如果发现有脑抽写错的情况,欢迎各位神犇打脸 :) 数学知识 数论: 高精度: 矩阵乘法: 数据结构 树状数组: 线段树: Treap: splay: 主席树: Link-Cut-Tree 图 2-SAT: 有向图的强联通分量: 无向图的边的双连通分量: 最短路: 最小生成树: 阅读全文

posted @ 2016-04-05 11:21 hahalidaxin 阅读(3043) 评论(7) 推荐(26) 编辑

bzoj 4278 [ONTAK2015]Tasowanie(SA,贪心)
摘要:【题意】 给定两个字符串,求二路归并后最小字典序的字符串。 【思路】 连接两个字符串后求出rank数组。通过比较rank数组进行二路归并。 【代码】 阅读全文

posted @ 2016-03-29 15:01 hahalidaxin 阅读(193) 评论(0) 推荐(0) 编辑

bzoj 2754 [SCOI2012]喵星球上的点名(后缀数组)
摘要:【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2754 【题意】 每只喵有名姓,如果被老师点到名或姓的子串都要答道,但每只喵一次点名只答一次,问每次有多少只喵答道,以及每只喵答道多少次。 【思路】 后缀数组 将所有的串连起来,包括姓名和 阅读全文

posted @ 2016-02-20 12:46 hahalidaxin 阅读(382) 评论(0) 推荐(0) 编辑

bzoj2946 [Poi2000]公共串(SA,SAM)
摘要:【题意】 多串求LCS。 【思路】 主要是想找一下SAM的优越感 :) velui good 后缀数组划分height需要注意不少细节 <_<,然后不停debug 【代码】 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 u 阅读全文

posted @ 2016-02-19 11:43 hahalidaxin 阅读(395) 评论(0) 推荐(0) 编辑

UVALive4513 Stammering Aliens(哈希法,后缀数组)
摘要:题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=12580 【思路】 求出现次数不小于k次的最长可重叠子串和最后的出现位置。 法一: 后缀数组,二分长度,划分height。时间复杂度为O(nlogn) 法二: Hash 阅读全文

posted @ 2015-12-10 17:36 hahalidaxin 阅读(389) 评论(0) 推荐(1) 编辑

poj3415 Common Substrings(后缀数组,单调栈 | 后缀自动机)
摘要:【题目链接】 http://poj.org/problem?id=3415 【题意】 A与B长度至少为k的公共子串个数。 【思路】 基本思想是将AB各个后缀的lcp-k+1的值求和。首先将两个字符串拼接起来中间用未出现的字符隔开,划分height数组,这首先保证了每一组中字符串之间的公共子串至少有k 阅读全文

posted @ 2015-11-29 17:41 hahalidaxin 阅读(2272) 评论(0) 推荐(10) 编辑

poj3294 Life Forms(后缀数组)
摘要:【题目链接】 http://poj.org/problem?id=3294 【题意】 多个字符串求出现超过R次的最长公共子串。 【思路】 二分+划分height,判定一个组中是否包含不小于R个不同字符串的后缀。 需要注意的有: 1) c[]尽量开大,字符范围为“偏移”之后的范围。 2) 用kase作 阅读全文

posted @ 2015-11-29 11:06 hahalidaxin 阅读(191) 评论(0) 推荐(0) 编辑

[总结]后缀数组: 注释+模板
摘要:以下模板单单注释了如何使用,算法详解可参考 罗穗骞《后缀数组——处理字符串的有力工具》 算法注释: #include<cstdio> #include<cstring> #include<iostream> #define FOR(a,b,c) for(int a=(b);a<=(c);a++) u 阅读全文

posted @ 2015-11-28 18:35 hahalidaxin 阅读(226) 评论(0) 推荐(0) 编辑

poj2774 Long Long Message(后缀数组)
摘要:【题目链接】 http://poj.org/problem?id=2774 【题意】 A & B的最长公共子序列。 【思路】 拼接+height数组。将AB拼接成一个形如A$B的串,枚举height数组并判断sa[i]是否与sa[i-1]分别属于两个不同的字符串,如果是则比较得ans。 时间复杂度为 阅读全文

posted @ 2015-11-28 18:23 hahalidaxin 阅读(211) 评论(0) 推荐(0) 编辑

Ural1297 Palindrome(后缀数组)
摘要:【题目链接】 http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=12406 【题意】 求最长回文子串。 【思路】 将字符串反向拼接在后,中间用一个没有出现的字符隔开,则问题转化为求新字符串两个特定后缀的lcp,枚举对称点i,对称数 阅读全文

posted @ 2015-11-28 16:14 hahalidaxin 阅读(654) 评论(0) 推荐(1) 编辑

poj3261 Milk Patterns(后缀数组)
摘要:【题目链接】 http://poj.org/problem?id=3261 【题意】 至少出现k次的可重叠最长子串。 【思路】 二分长度+划分height,然后判断是否存在一组的数目不小于k即可。 需要注意的是:用末尾添0的方法解决n==1时的RE问题,但是在can中需要忽略height[0]且考虑 阅读全文

posted @ 2015-11-28 10:51 hahalidaxin 阅读(170) 评论(0) 推荐(0) 编辑

poj1743 Musical Theme(后缀数组|后缀自动机)
摘要:【题目链接】 http://poj.org/problem?id=1743 【题意】 求不可重叠最长重复子串。 2015-11-27 【思路】 1) 据题意处理字符串 2) 后缀数组。二分长度k,问题成为了判定是否存在两个及以上长度不小于k且互不重叠的子串。根据height数组划分后缀,满足两个条件 阅读全文

posted @ 2015-11-27 21:41 hahalidaxin 阅读(286) 评论(0) 推荐(0) 编辑

统计

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