随笔分类 - ACM-后缀数组
摘要:B-Suffix Array 题意 给出一个字符串 s ,它的以下标 i 为开头的后缀为 \(s_i\) ,给出 B 函数,对每个后缀进行 B 函数的运算。定义 B 函数如下: 对于一个字符串 t ,根据以下运算得到其 b 数组: \(b_i\ =\ min((i-j)_{t_j\ =\ t_i,j
阅读全文
摘要:后缀数组题目 "入门博客" 模板题 输出sa[i] "P3809 【模板】后缀排序" 字符串的最小表示 "P4051 [JSOI2007]字符加密" 将字符串s复制为ss,做后缀数组。 取首尾字符求字典序最小 "P2870 [USACO07DEC]Best Cow Line G" 题意 给出一个字符
阅读全文
摘要:"转载自OI wiki" 后缀数组相关定义 :表示按照字典序排序后,第i名后缀开头下标 :表示后缀i的排名 :以下标i为开头的后缀 暴力求法 一切都从暴力开始,哈哈哈哈 我们把n个后缀sort一遍,复杂度是O(n2logn)。 倍增优化 使用倍增的思想进行优化。 1. 按照每个后缀的前1个字母排序。
阅读全文
摘要:"Common Substrings" 题意 给出两个字符串,求他俩长度 =k的公共子串的数量。 思路 $n^2$ 的思路比较容易想到。 我们把两个字符串用一个没有出现过的字符隔开拼接起来,做后缀数组。 那么公共子串的数量,就是A串的后缀和B串的后缀之间的所有最长公共前缀和。 统计时,遍历$heig
阅读全文
摘要:" Long Long Message " 题意 给出两个字符串,让找出最长的公共子串 思路 把两个字符串合起来,做最长不重叠子串即可。 "[poj 1743] Musical Theme 后缀数组 or hash" 数组开二倍 代码
阅读全文
摘要:"POJ 3693 " 题意 "SPOJ REPEATS " 的进阶版,在这题的基础上输出字典序最小的重复字串。 思路 跟上题一样,先求出最长的重复次数,在求的过程中顺便纪录最多次数可能的长度。 因为sa数组是按照字典序排好的,所以我们顺序遍历sa数组,找到第一个符合的输出即可。 why 字符串结尾
阅读全文
摘要:字体颜色如何 字体颜色 "SPOJ REPEATS " 题意 给出一个字符串,求重复次数最多的连续重复子串。 题解 引自论文 "后缀数组——处理字符串的有力工具" 。 "解释参考博客" “S肯定包括了字符r[0], r[L], r[L 2],r[L 3], ……中的某相邻的两个” 由于当前S是有两个
阅读全文
摘要:Power Strings 题意 给出一个字符串s,求s最多由几个相同的字符串重复而成(最小循环节的重复次数) 思路 之前学习KMP的时候做过。 我的思路是:枚举字符串的长度,对于当前长度k,判断$lcp(1,k+1)>=k$,\(lcp(k+1,2k+1)>=k\),\(lcp(3k+1,4k+1
阅读全文
摘要:"New Distinct Substrings" 题意 给出T个字符串,问每个字符串有多少个不同的子串。 思路 字符串所有子串,可以看做由所有后缀的前缀组成。 按照后缀排序,遍历后缀,每次新增的前缀就是除了 与上一个后缀的所有公共前缀 之外的前缀。 答案就是用总数 重复的 即$\frac{n(n+
阅读全文
摘要:" Milk Patterns " 题意 给出n个数字,以及一个k,求至少出现k次的最长子序列的长度 思路 和poj 1743思路差不多,二分长度,把后缀分成若干组,每组任意后缀公共前缀都 =当前二分的长度。统计是否有某个组后缀数量 =k,如果有当前长度就可以。 代码
阅读全文
摘要:"Musical Theme" 题意 给出n个1 88组成的音符,让找出一个最长的连续子序列,满足以下条件: 1. 长度大于5 2. 不重叠的出现两次(这里的出现可以经过变调,即这个序列的每个数字全都加上一个整数x) 思路 我们处理一下这个所谓的“变调”:令$a[i]=a[i+1] a[i]$,这样
阅读全文
摘要:[USACO07DEC]Best Cow Line G [USACO07DEC]Best Cow Line G 小声哔哔:字符串hash牛逼 题意 给出一个字符串,每次可以从字符串的首尾取出一个字符,放到队列的尾部,求可以得到的最小的字典序是多少? 思路1 此时字符串首尾的下标分别为l,r。 如果s
阅读全文

浙公网安备 33010602011771号