随笔分类 - 字符串-后缀自动机
摘要:【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3238 【题目大意】 给出一个字符串求其出现恰好k次的子串数量 【题解】 对串建立AC自动机,所有right值为k的节点的value值的和就是答案 【代码】
阅读全文
摘要:【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3238 【题目大意】 给出一个串,设T[i]表示从第i位开始的后缀, 求sum(len(T[i])+len(T[j])-2*lcp(T[i],T[j])) 【题解】 根据反串的后缀自动机建
阅读全文
摘要:【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4327 【题目大意】 求每个子串在母串中的最长匹配 【题解】 对母串建立后缀自动机,用每个子串在上面匹配即可。 【代码】
阅读全文
摘要:【题目链接】 http://codeforces.com/problemset/problem/427/D 【题目大意】 给出一个两个字符串,求出最短且在两个字符串中唯一的公共子串。 【题解】 以原字符串的两倍建立自动机,按字典序在parent树上搜索, 得到的第一个长度为n的字符串就是答案。 【代
阅读全文
摘要:【题目链接】 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=524&page=show_problem&problem=660 【题目大意】 给出一个字符串,求出与其循环同构的字符串中,字
阅读全文
摘要:【题目链接】 http://www.spoj.com/problems/NSUBSTR/ 【题目大意】 给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。 求出所有的F。 【题解】 在SAM中,一个串出现的次数就是|Right(s)|,我们按长度从小到大分配内存单位, 从后往
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=4416 【题目大意】 给出一个字符串,然后,给出一个字符串集合,问在该字符串中出现,且不在字符串集合中出现的子串总数。 【题解】 将集合中所有的子串在自动机上跑,保存匹配到的位置的最长匹配, 用于在p
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=4622 【题目大意】 给出一个长度不超过2000的字符串,有不超过10000个询问,问【L,R】子串中出现的子串数目,相同子串不可重复计数。 【题解】 考虑到字符串长度只有两千,我们对每个位置往后建立
阅读全文
摘要:【题目链接】 http://www.spoj.com/problems/SUBLEX/ 【题目大意】 给出一个字符串,求其字典序排名第k的子串 【题解】 求出sam上每个节点被经过的次数,然后采用权值线段树上查找第k大数类似的方法, 每次确定查找范围,进入相应的子树,同时输出路径上的点即可。 【代码
阅读全文
摘要:【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=4436 【题目大意】 给出一些字符串,由0~9组成,求出所有不同子串的和。 【题解】 将所有字符串添加拼接符10连接在一起建立自动机, 从起点开始遍历所有节点,就能计算所有的子串和了。注意转移的时候只
阅读全文
摘要:【题目链接】 http://www.spoj.com/problems/LCS2/ 【题目大意】 求n个串的最长公共子串 【题解】 对一个串建立后缀自动机,剩余的串在上面跑,保存匹配每个状态的最小值, 取最小值中的最大值即可。由于跑的地方只记录了匹配结尾的状态, 所以还需要更新parent树上的状态
阅读全文
摘要:【题目链接】 http://codeforces.com/contest/235/problem/C 【题目大意】 给出一个字符串,给出一些子串,问每个子串分别在母串中圆环匹配的次数,圆环匹配的意思是将该子串拆成两段再首位交换相接的串和母串匹配,比如aaab变成baaa,abaa,aaba再进行匹配
阅读全文