摘要: BZOJ2555. SubString 要求在线询问一个串在原串中出现的次数,并且可以在原串末尾添加字符串 如果没有修改的话,考虑建出$parent$树之后统计每个$endpos$节点的$right$集合大小,现在要求动态添加字符,那么由于$parent$树的形态会变,所以用$LCT$来维护$par 阅读全文
posted @ 2020-04-14 23:57 _kiko 阅读(93) 评论(0) 推荐(0) 编辑
摘要: POJ1743 Musical Theme 要找长度$\ge 5$且出现次数$\ge 2$并且第一次出现和最后一次出现不重叠的最长子串。 题目条件中,如果对于两个串,在一个串的每个数上都加上相同的数之后可以得到另一个串,那么这个两个串可以被是相同的。 首先我们先得到差分数组,然后要求的就是差分数组中 阅读全文
posted @ 2020-04-14 19:48 _kiko 阅读(92) 评论(0) 推荐(0) 编辑
摘要: BZOJ2882 工艺 给出一个串,要求其循环同构串中字典序最小的那个 串翻倍建$SAM$然后从起点开始贪心的跑$n$次即可 当然也能用最小表示法来做 阅读全文
posted @ 2020-04-14 16:48 _kiko 阅读(181) 评论(0) 推荐(0) 编辑
摘要: BZOJ3998 弦论 "🔗" 给一个字符串,问其第$K$小字串是什么 两种形式 1.不同起始位置的相同串只算一次 2.不同起始位置的相同串各算一次 首先建$SAM$ 所有串的数量就是$SAM$中的从起始点开始的路径数量,所以可以先在$SAM$上$dp$出来从所有节点开始的子串数量,然后递归找就好 阅读全文
posted @ 2020-04-14 16:14 _kiko 阅读(115) 评论(0) 推荐(0) 编辑
摘要: POJ2774 Long Long Message 找两个串的 最长公共字串 对其中一个串$s$建$SAM$,然后我们如何找到最长公共字串,办法就是枚举$t$串所有的前缀,然后找各个前缀的最长能和$s$串匹配的后缀。 如果一个个跑需要$O(n^2)$,$SAM$可以来保存之前匹配的状态,假设现在匹配 阅读全文
posted @ 2020-04-14 16:02 _kiko 阅读(99) 评论(0) 推荐(0) 编辑