SA
文章平均质量分 78
IcePrincess_1968
这个作者很懒,什么都没留下…
展开
-
Codeforces #123D: String 题解
题目里说,如果某一种子串s在原串中出现了k次,根据题目定义的函数,它产生的贡献是(k+1)*k/2 这个条件很奇怪,我们尝试转化模型,就会发现这个函数相当于我们将这k个s串排成一排,每个串和它自己以及后面的串匹配一次,总次数就是题目要求的函数 于是我们可以上后缀数组+高度数组,对于每一个后缀,和后面的每一个后缀的算一个最长公共前缀,然后根据长度统计答案 这个东西可以用单调栈搞一搞 最后别忘...原创 2018-02-02 14:18:07 · 416 阅读 · 0 评论 -
POJ3415: Common Substring 题解
先把两个串拼起来,中间用不会出现的字符连一下 然后求一下后缀数组和高度数组 然后可以用一个单调栈维护一下lcp数组 对于来自A的后缀,我们要统计它后面的来自B的后缀的答案,同样对于来自B的后缀,我们要统计它后面的来自A的后缀的答案,这两个部分是一样的,这里只讨论第一个 从后往前做,每遇到一个来自B的后缀,就把它压进单调栈,并把栈顶的那些大于它的元素弹掉 注意你每弹掉一个元素,它的答案都会原创 2018-01-13 11:14:32 · 887 阅读 · 0 评论 -
BZOJ1031: 字符加密 题解
后缀数组裸题(写这题是练板子的)枚举长度的k一定要开成全局啊#include <cstdio> #include <iostream> #include <cstring> #include <string> #include <cstdlib> #include <utility> #include <cctype&g原创 2018-03-20 21:40:45 · 190 阅读 · 0 评论 -
UOJ #35: 后缀排序 题解
后缀数组+高度数组裸题 直接上了一个最裸的O(nlog2n)O(nlog2n)O(nlog^{2}n)的板子 #include <cstdio> #include <iostream> #include <cstring> #include <string> #include <cstdlib> #include <util...原创 2018-04-05 22:02:11 · 207 阅读 · 0 评论