随笔分类 -  字符串-后缀自动机

摘要:Description 对于一个字符串|S|,我们定义fail[i],表示最大的x使得S[1..x]=S[i x+1..i],满足(xmaxl t prt maxl$的贡献,这样就可以统计所有贡献 每一次进行扩展的时候可以维护关系,然后扩展结束之后当前节点就表示最后一个点(可以接收整个字符串) 然后 阅读全文
posted @ 2018-09-28 20:13 Dream_maker_yk 阅读(652) 评论(0) 推荐(0)
摘要:Description 懒得写背景了,给你一个字符串init,要求你支持两个操作 (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 你必须在线支持这些操作。 Input 第一行一个数Q表示操作个数 第二行一个字符串表示初始字符串init 接下来 阅读全文
posted @ 2018-09-26 19:49 Dream_maker_yk 阅读(261) 评论(1) 推荐(0)
摘要:Description 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了 一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CE O,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数, 阅读全文
posted @ 2018-09-24 23:16 Dream_maker_yk 阅读(331) 评论(0) 推荐(0)
摘要:Description 对于一个给定长度为N的字符串,求它的第K小子串是什么。 Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。 Output 输出仅一行,为一个数字串, 阅读全文
posted @ 2018-09-24 17:36 Dream_maker_yk 阅读(147) 评论(0) 推荐(0)
摘要:Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: l 读入单词 l 计算最长公共子串的长度 l 输出结果 Input 文件的第一行是整数 n,1 using namespace std; define N 200010 const int CHARSET_S 阅读全文
posted @ 2018-09-24 15:31 Dream_maker_yk 阅读(122) 评论(0) 推荐(0)
摘要:如果你还需要计算right集合的大小,那么就加上内存池吧 如果你用不来指针或者不方便用指针,莫慌,这里有数组版 数组+right集合大小维护 阅读全文
posted @ 2018-09-20 21:22 Dream_maker_yk 阅读(213) 评论(0) 推荐(0)