摘要: 题目传送门 思路:按字典序,小的字符优先选取。对于一个字符,如果以这个字符开头的子串大于等于k个,那说明这个字符是应该选的,并且选完之后,可能还要继续选。如果以这个字符开头的子串小于k个,说明这个字符不能选,因为选完这个字符,后面无论怎么构造子串,都构造不出第k大的子串。 所以关键点就在于我们要统计 阅读全文
posted @ 2019-04-07 21:34 光芒万丈小太阳 阅读(1060) 评论(1) 推荐(0) 编辑
摘要: 题目传送门 题意:给出一个母串,再给出n个串,问对于每个串,母串中有几个子串是可以通过循环变化得到这个串。 思路:对母串建SAM,求出$right$集。 把匹配串复制一遍,和母串进行匹配,当匹配长度大于等于$siz$时,将当时的$p$跳到最远的$len$还大于$siz$的父串(不停的往父亲跳),答案 阅读全文
posted @ 2019-04-07 19:09 光芒万丈小太阳 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意: 给出若干个串,求所有子串的和,子串和的定义为十进制数,取模1e9+7. 思路: 对于一个串来说,一个状态p就代表着$right$相同的集合,假设我们已经知道了状态p的$sum$,以及状态p的$size$,假设p的下一位有一个c,p+c的状态为q,那么$sum[q]+=sum[p] 阅读全文
posted @ 2019-04-07 16:38 光芒万丈小太阳 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题目大意:求长度为k的串的最大次数,把k从1到length的所有答案全部输出。 思路: 这道题放在$SAM$里就是求长度$k$对应的所有$right$集中最大的大小。 我们以$aabab$这个串距离,称作$S$串。 首先我们要求出每一个状态对应的right集大小,S中的aab和ab此时并 阅读全文
posted @ 2019-04-07 13:21 光芒万丈小太阳 阅读(150) 评论(0) 推荐(0) 编辑