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