[AHOI 2013]差异】的更多相关文章

题目链接:BZOJ - 3238 题目分析 显然,这道题就是求任意两个后缀之间的LCP的和,这与后缀数组的联系十分明显. 求出后缀数组后,求出字典序相邻两个后缀的LCP,即 Height 数组. 那么我们可以用这个 Height 数组求出所有后缀之间 LCP 的和. 我们用 f[i] 表示字典序第 i 的后缀与字典序在 i 之后的所有后缀的 LCP 的和. 我们知道,两个后缀的 LCP 为 Height 数组中这两个后缀之间的最小值. 我们从最后向前推 i ,用一个单调栈维护后面的 Height…
Description 题库链接 给定一个长度为 \(n\) 的字符串 \(S\) ,令 \(T_i\) 表示它从第 \(i\) 个字符开始的后缀.求 \[\sum_{1\leqslant i<j\leqslant n}\text{len}(T_i)+\text{len}(T_j)-2\times\text{lcp}(T_i,T_j)\] 其中, \(\text{len}(a)\) 表示字符串 \(a\) 的长度, \(\text{lcp}(a,b)\) 表示字符串 \(a\) 和字符串 \(b…
求一个字符串的∑ ∑ len[i] + len[j] - 2 * lcp(i, j),其中i,j表示从i,j开始的后缀. 方法一:SA+单调栈,自行yy. 方法二:SAM构造出来,然后每个状态对答案的贡献就是:C(|right_s|,2)*(Max_s-Max_parent_s).前面使用的变量名含义与CLJ论文里的一致.right集合的大小需要构造后缀树然后从那些叶子节点开始算. 由于可以用马拉车在O(N)时间内枚举所有的回文串,所以在parent树中倍增找到每个回文串的出现次数即可. 跑得巨…
BZOJ 3236 AHOI 2013 作业 内存限制:512 MiB 时间限制:10000 ms 标准输入输出     题目类型:传统 评测方式:文本比较 题目大意: 此时己是凌晨两点,刚刚做了Codeforces的小A掏出了英语试卷.英语作业其实不算多,一个小时刚好可以做完.然后是一个小时可以做完的数学作业,接下来是分别都是一个小时可以做完的化学,物理,语文......小A压力巨大.woc他竟然一个小时搞完语文卷子 这是小A碰见了一道非常恶心的数学题,给定了一个长度为n的数列和若干个询问,每…
http://www.lydsy.com/JudgeOnline/problem.php?id=3238 后缀数组裸题但是\(5\times 10^5\)貌似常数有点大就过不了?(我的sa常数那么大想了想还是算了吧qwq) 两个后缀的lcp就是反串的后缀自动机上两个状态在parent树上的lca,lcp的长度就是lca的maxlen. 这样在parent树上树形dp一下就可以了qwq 时间复杂度\(O(n)\). #include<cstdio> #include<cstring>…
Problem Description 给定一个长度为 \(n\) 的字符串 \(S\),令 \(T_i\) 表示它从第 \(i\) 个字符开始的后缀.求 \(\sum_{1\leqslant i<j\leqslant n}len(T_i)+len(T_j)-2\times len(lcp(T_i,T_j))\) 其中,\(len\)(a) 表示字符串 \(a\) 的长度,\(lcp\)(a,b) 表示字符串 \(a\) 和字符串 \(b\) 的最长公共前缀. Input Format 一行,一…
题目大意:给出一些数,问在一个区间中不同的数值有多少种,和在一个区间中不同的数值有多少个. 思路:因为没有改动,所以就想到了莫队算法.然后我写了5K+的曼哈顿距离最小生成树,然后果断T了.(100s的时限啊,刷status都要刷疯了..,结果最后加了手写读入也没能A). 后来果断放弃,写了分块版的莫队算法. 84sAC...这题卡的..貌似莫队并非正解. 其有用分块来写莫队就非常easy了.仅仅须要将全部询问的区间排序.左端点所在块作为第一键值,右端点作为第二季键值排序,之后就能够转移了.理论上…
题面 emmm......我把莫队扔到了杂题里,因为感觉局限挺大的=.= 这题是莫队维护信息+分块查询答案,都是两者的基本操作,复杂度$O(m$ $sqrt(n)+n$ $sqrt(m))$ 所以为啥要写这水题的题解来着 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,Sq=; struct a { long long a…
\(\\\) Description 给出一个长为 \(n\) 的数列 \(A\) 和 \(k\),多次询问: 对于一个区间 \([L_i,R_i]\),问区间内有多少个数在 \([a_i,b_i]\) 内,以及这些数共有多少个不同的值. \(n\le 10^5,m\le 10^6\) By wangyisong1996加强数据 \(\\\) Solution 看到最后一行心都凉了...... 真的佩服松松松的速度 不知道比我高到哪里去了 卡常卡到想吐(见代码部分吧)` \(\\\) 首先肯定莫…
Description 题库链接 \(n\) 杯鸡尾酒排成一行,其中第 \(i\) 杯酒 (\(1 \leq i \leq n\)) 被贴上了一个标签 \(s_i\),每个标签都是 \(26\) 个小写英文字母之一.设 \(\mathrm{Str}(l, r)\) 表示第 \(l\) 杯酒到第 \(r\) 杯酒的 \(r - l + 1\) 个标签顺次连接构成的字符串.若 \(\mathrm{Str}(p, p_o) = \mathrm{Str}(q, q_o)\),其中 \(1 \leq p…