随笔分类 -  字符串算法 -- 后缀数组

摘要:【LOJ 3095】[SNOI2019]字符串(后缀数组) 题面 "LOJ" 题解 首先画图看看如何比较两个串的大小,发现这个东西等价于求两个相邻的后缀的LCP。 一个做法是求出SA,然后就可以很容易的判断两个位置的大小了。 然而实际上相邻两个后缀的LCP转移可以很容易的从前一个得到,所 阅读全文
posted @ 2019-04-28 22:36 小蒟蒻yyb 阅读(576) 评论(0) 推荐(0) 编辑
摘要:【BZOJ5304】[HAOI2018]字串覆盖(后缀数组,主席树,倍增) 题面 "BZOJ" "洛谷" 题解 贪心的想法是从左往右,能选就选。这个显然是正确的。 题目的数据范围很好的说明了要对于询问分开进行处理。 先考虑询问的模板串长比较大的情况。 那么只需要每次找到一个范围内的最小位置然后接着暴 阅读全文
posted @ 2019-02-20 15:38 小蒟蒻yyb 阅读(567) 评论(0) 推荐(0) 编辑
摘要:【Luogu5108】仰望半月的夜空(后缀数组) 题面 "洛谷" 题解 ~~实名举报这题在比赛之前还不是这个样子的,还被我用SAM给水过去了~~ 很明显求出SA之后就是按照SA的顺序从前往后考虑每一个长度,这样可以知道串是什么。 不过如果串相同要左端点最靠左,所以二分包含这个串的区间,用$R 阅读全文
posted @ 2018-12-27 10:54 小蒟蒻yyb 阅读(399) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1031】字符加密(后缀数组) 题面 "BZOJ" "洛谷" 题解 把字符串倍长 然后直接求后缀数组, 拍好序之后直接输出就行了。 (我只是复习一下SA而已) cpp include include include include include include include inc 阅读全文
posted @ 2018-05-28 19:59 小蒟蒻yyb 阅读(334) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4892】DNA(后缀数组) 题面 "BZOJ" "洛谷" 题解 看到这道题目,我第一反应是FFT??? 然后大力码出了一个FFT 就像这样 然后洛谷上交一发 恩。。。FFT果然常数名不虚传 那么就用NTT吧 就像这样 这样就很开心了 当然,这个时间在洛谷能够排到多少呢? 阅读全文
posted @ 2018-05-28 19:40 小蒟蒻yyb 阅读(460) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4556】字符串(后缀数组,主席树) 题面 "BZOJ" 题解 注意看题: 要求的是[a,b]的 子串 和[c,d]的lcp的最大值 先来一下暴力吧 求出SA之后 暴力枚举[A,B]之间的后缀 求一个lcp 复杂度O(nm) 40分到手 阅读全文
posted @ 2018-02-25 16:27 小蒟蒻yyb 阅读(461) 评论(0) 推荐(0) 编辑
摘要:【BZOJ2882】工艺(后缀数组) 题面 "BZOJ权限题,我爱良心洛谷" 题解 最容易的想法: 把字符串在后面接一份 然后求后缀数组就行了。。。 cpp include include include include include include include include include 阅读全文
posted @ 2018-02-21 20:13 小蒟蒻yyb 阅读(299) 评论(3) 推荐(0) 编辑
摘要:【BZOJ4566】找相同字符(后缀数组) 题面 "BZOJ" 题解 后缀数组的做法,应该不是很难想 首先看到两个不同的串,当然是接在一起求SA,height 那么,考虑一下暴力 在两个串各枚举一个后缀,他们的lcp就是对答案产生的贡献 现在优化一下,按照SA的顺序枚举来处理lcp 阅读全文
posted @ 2018-02-15 11:29 小蒟蒻yyb 阅读(340) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4199】【NOI2015】品酒大会 题面 "BZOJ" "Uoj" "洛谷" 题解 考虑最裸的暴力 枚举每次的长度 以及两个开始的位置 检查以下是否满足条件,如果可以直接更新答案 复杂度O(n3) 1520分 cpp include include include inclu 阅读全文
posted @ 2018-01-27 10:13 小蒟蒻yyb 阅读(248) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4650】【NOI2016】优秀的拆分(后缀数组) 题面 "BZOJ" "Uoj" 题解 如果我们知道以某个位置为开始/结尾的AA串的个数 那就直接做一下乘法就好 这个怎么求? 枚举一个位置 枚举串的长度 直接暴力算就好啦 至于是否可行,用SAlcp就好啦 这样就是95阅读全文
posted @ 2018-01-26 10:03 小蒟蒻yyb 阅读(292) 评论(5) 推荐(0) 编辑
摘要:【BZOJ4698】Sandy的卡片(后缀数组) 题面 讨厌权限题!!! 因为我交不了。。。 "洛谷" 题面 做完差之后就是裸的最长公共子串 没了。。 数组往死里开吧。。。 阅读全文
posted @ 2018-01-25 11:20 小蒟蒻yyb 阅读(221) 评论(0) 推荐(0) 编辑
摘要:【SPOJ】Distinct Substrings/New Distinct Substrings(后缀数组) 题面 "Vjudge1" "Vjudge2" 题解 要求的是串的不同的子串个数 两道一模一样的题目 其实很容易: 总方案 不合法方案数 对于串进行后缀排序后 不合法方案数=相邻两个串的不合 阅读全文
posted @ 2018-01-25 10:54 小蒟蒻yyb 阅读(192) 评论(0) 推荐(0) 编辑
摘要:【BZOJ2946】公共串(后缀数组) 题面 权限题。。。 只有 "CJOJ" 题面啦 Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: 读入单词,计算最长公共子串的长度 Input 第一行是整数 n,1 include include include in 阅读全文
posted @ 2018-01-24 10:13 小蒟蒻yyb 阅读(382) 评论(0) 推荐(0) 编辑
摘要:【POJ1743】Musical Theme(后缀数组) 题面 "洛谷,这题是弱化版的,O(n2)dp能过" "hihoCoder 有一点点区别" "POJ 多组数据" 题解 要求的是最长不可重叠重复子串 也就是找两个最长的相同子串 使得它们不相交 先求出SA,height 考虑一下如果两 阅读全文
posted @ 2018-01-23 17:20 小蒟蒻yyb 阅读(329) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1717】产奶的模式(后缀数组) 题面 权限题 "hihocoder" "洛谷" 题解 hihocoder里面讲的非常好了 这题要求的就是最长可重叠重复K次子串 所谓相同的子串 我们可以理解为如果有两个后缀的前缀相同 那么就有一个相同的子串 如果两个后缀的前缀相同 那么他们在SA阅读全文
posted @ 2018-01-23 17:11 小蒟蒻yyb 阅读(918) 评论(0) 推荐(0) 编辑
摘要:【POJ2774】Long Long Message(后缀数组) 题面 "Vjudge" Description Little cat在Byterland的首都读物理专业。这些天他收到了一条悲伤地信息:他的母亲生病了。担心买火车票花钱太多(Byterland是一个巨大的国家,因此他坐火车回家需要16 阅读全文
posted @ 2018-01-23 14:48 小蒟蒻yyb 阅读(453) 评论(4) 推荐(0) 编辑

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