题目描述 题解: 鉴于子串我们很容易想到后缀自动机。 先建后缀自动机,然后处理单点价值以及对于每个点的总价值。 T=0要求去重,此时单点价值为1; T=0要求不去重,此时单点价值为parent树上endpos的数量。后缀的前缀就是子串。 由于建成的后缀自动机有向无环,我们可以O(n)时间处理每个点的 ...
分类:
其他好文 时间:
2018-12-10 19:11:02
阅读次数:
169
description [题面][1] 求给定字符串的第$k(k\le 10^9)$大子串。无解输出 1,$n\le 5\times 10^5$ 分不同位置的相同子串算作一个,不同位置的相同子串算作多个两种情况 solution 我们首先要建立一个$SAM$... 由于$SAM$相当于一个放了当前字 ...
分类:
其他好文 时间:
2018-07-24 21:44:46
阅读次数:
205
AtCoder Regular Contest 097 C - K-th Substring 题意:求一个长度小于等于5000的字符串的第K小子串,相同子串算一个。 K<=5。 分析:这不是弦论那道题吗。。 观察到K<=5,我们把所有长度小于等于5的子串拿出来去重再排个序即可。 代码: D - Eq ...
分类:
其他好文 时间:
2018-07-02 11:04:28
阅读次数:
144
题面 "传送门" Sol $sam$ 求一个串的不重复的第$k$小子串很好办 如果可以相同 那么要算上每个点(前缀)的后缀的个数 那么就是这个$endpos(right)$集合的子串的出现次数 cpp include define IL inline define RG register defin ...
分类:
其他好文 时间:
2018-04-21 16:08:11
阅读次数:
188
前几天写的题,今天补写个blog T的情况get right集合的时候特判一下。 因为SAM就是有序的,所以可以dfs求解。 把parent树构建出来,sum表示当前子树的right和,搜一下就出来了。 ...
分类:
其他好文 时间:
2018-04-01 21:54:26
阅读次数:
162
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3998题解: 后缀自动机。 当T=0时, 由于在后缀自动机上沿着trans转移,每个串都是互不相同的, 就只需要统计出从每个状态出发,存在多少条不同的路径,即有多少个不同的子串。 这个可以拓扑排 ...
分类:
其他好文 时间:
2018-03-10 22:11:51
阅读次数:
319
题意概述:对于一个给定长度为N的字符串,求它的第K小子串是什么,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。N<=500000,K<=10^9. ...
分类:
其他好文 时间:
2018-03-08 13:55:18
阅读次数:
211
题目描述 为了提高智商,ZJY开始学习弦论。这一天,她在《 String theory》中看到了这样一道问题:对于一个给定的长度为n的字符串,求出它的第k小子串是什么。你能帮帮她吗? 输入输出格式 输入格式: 第一行是一个仅由小写英文字母构成的字符串s 第二行为两个整数t和k,t为0则表示不同位置的 ...
分类:
其他好文 时间:
2018-02-24 16:46:54
阅读次数:
130
【BZOJ3998】弦论(后缀自动机) 题面 "BZOJ" 题解 这题应该很简单 构建出$SAM$后 求出每个点往后还能构建出几个串 按照拓扑序$dp$一些就好了 然后就是第$k$大,随便搞一下就好 ...
分类:
其他好文 时间:
2018-02-15 20:30:58
阅读次数:
205
后缀自动机 我们建出后缀自动机,对于每个节点我们算出他和他的后继结点一共可以形成多少个不同的串,不同根据t来定义 这里我们不需要考虑每个节点代表的那些等价类字符串,因为那些字符串不同的前缀在到达这个节点前已经确定了,所以我们只需要在t=1时一下考虑right集合的大小,right集合的大小需要在pa ...
分类:
其他好文 时间:
2018-01-28 16:32:05
阅读次数:
178