随笔分类 - 字符串
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4319 [算法] 首先 , 我们可以求出这个字符串的rank数组 按照SA逐位枚举 , 贪心构造 , 即可 时间复杂度 : O(N) [代码]
阅读全文
摘要:[题目链接] https://codeforces.com/contest/204/problem/E [算法] 首先构建广义后缀自动机 对于自动机上的每个节点 , 维护一棵平衡树存储所有它所匹配的字符串编号 可以通过启发式合并得到 计算答案时 , 我们枚举每个右端点 , 当当前集合大小 < K时
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5337 [算法] 考虑构建后缀自动机 用fi , j表示前i个串 , 匹配到自动机上的j号节点方案数 在自动机上dp即可 , 详见代码 时间复杂度 : O(NK) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2946 [算法] 建立多串后缀树 对于后缀树上的每个点 , 判断该节点所代表的等价类是否在所以字符串中出现 , 用该点的深度更新答案 时间复杂度 : O(NL) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4199 [算法] 首先 , 题目中有一条性质 : 若两个子串是“r相似”的 , 那么它们同样是(r - 1)相似 ,(r - 2)相似 , ... , 0相似的 不妨考虑构建给定字符串的
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2434 [算法] 如果我们预处理出所有的字符串 , 显然是会空间超限的 但是我们发现 , 该字符串集的字典树的节点树 <= 10 ^ 5 不妨首先构建AC自动机 考虑AC自动机的fail
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4556 [算法] 不难发现 , 对于每个询问 ans = max{ min{b - i + 1 , lcp(i , c) } (a <= i <= b) 不妨二分答案mid , 那么问题
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3926 [算法] 建立广义后缀自动机 对于每个叶子节点 , 以它为根 , 依次将路径上的子串加入自动机 最后统计本质不同的子串个数即可 时间复杂度 : O(N) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4650 [算法] 首先 , 求形如"AABB"的子串个数 , 我们只要预处理 : Fi : 以i为最后一个字符的所有子串中 , 有多少个“AA"串 Gi :以i为第一个字符的所有子串中
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4566 [算法] 首先 , 子串是后缀的前缀 考虑拼接两个字符串 , 中间用不可见字符隔开 , 求出该字符串的后缀数组 那么前缀相同的后缀一定排名一定接近 而我们又知道lcp(i , j
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2938 [算法] 首先建出给定字符串集的AC自动机 存在无限长的代码当且仅当 : AC自动机上存在一个环且环上没有危险节点 时间复杂度 : O(N) [代码]
阅读全文
摘要:[题目链接] http://poj.org/problem?id=2774 [算法] 后缀数组 详见2009国家集训队论文集之 : 《后缀数组——处理字符串的有利工具》 时间复杂度 : O(NlogN) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3238 [算法] 首先 , LCP(Ti , Tj) = min{ height[rank[Ti] + 1] , height[rank[Ti] + 2] , ... , height[
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1717 [算法] 首先二分答案 , 然后将后缀分组即可 详见2009国家集训队论文集之 : 《后缀数组——处理字符串的有利工具》 时间复杂度 : O(NlogN) [代码]
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1031 [算法] 将字符串倍长 , 构建后缀数组 , 然后按要求输出即可 时间复杂度 : O(NlogN) [代码]
阅读全文
摘要:[比赛链接] https://codeforces.com/contest/1029 [比赛经历] 本想靠DIV3上点分,没想到时差没有倒过来,最后三题收场,第二天SYSTEM TEST的时候D题还被卡常了,最后只加了1rating,算是一场比较失败的比赛吧 [题解] A. Many Equal S
阅读全文
摘要:[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4327 [算法] AC自动机[代码]
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/451/problem/D 【算法】 合并后的字符串一定是形如"ababa","babab",ab交替出现的字符串 那么,判断一段是否为回文,只需判断首尾字符是否相等即可 【代码】
阅读全文
摘要:【题目链接】 https://www.luogu.org/problemnew/show/P1032 【算法】 广度优先搜索 用stl库里的map来判重 【代码】
阅读全文
摘要:【题目链接】 http://poj.org/problem?id=3630 【算法】 字典树 【代码】
阅读全文

浙公网安备 33010602011771号