题意: 戳这里 分析: \(sam\) 裸题,求第 \(k\) 大字符串 首先建出 \(sam\) 然后求出 \(siz[i]\) 表示 \(i\) 节点代表的串的 \(endpos\) 的集合大小 然后分情况讨论: \(T==0\) 只统计本质不同的串的个数,所以所有点的 \(siz[i]\) 都 ...
分类:
编程语言 时间:
2020-12-23 11:33:36
阅读次数:
0
题意: 对于一个给定长度为N的字符串,求它的第K小子串是什么。N<=5000000,K<=1000000000。 题解: 对于本题,首先我们要做的事情是先建立后缀自动机。 如果T=0,那么每一个位置的出现次数直接设为1,T=1否则就是正常的right集合大小。 那么我们可以再记一个sum[i],表示 ...
分类:
其他好文 时间:
2020-02-13 13:13:09
阅读次数:
67
下了狠心开始做SAM的题目了…… (中间因为傻逼26分写错被卡,进来的时候记得把自己的 减掉) ...
分类:
其他好文 时间:
2020-01-27 15:54:48
阅读次数:
93
题目描述 为了提高智商,ZJY开始学习弦论。这一天,她在《 String theory》中看到了这样一道问题:对于一个给定的长度为n的字符串,求出它的第k小子串是什么。你能帮帮她吗? 输入格式 第一行是一个仅由小写英文字母构成的字符串s 第二行为两个整数t和k,t为0则表示不同位置的相同子串算作一个 ...
分类:
其他好文 时间:
2020-01-04 22:11:38
阅读次数:
78
P3975 [TJOI2015]弦论 在原串所有子串中求字典序第k大的子串 ...
分类:
其他好文 时间:
2019-10-25 20:10:32
阅读次数:
50
题意: 对于一个给定的长度为n的字符串,求出它的第k小子串。 有参数t,t为0则表示不同位置的相同子串算作一个,t为1则表示不同位置的相同子串算作多个。 题解: 首先,因为t的原因,后缀数组较难实现,这里不讨论。 使用后缀自动机: 因为,这里需要按字典序考虑子串,所以要使用trs指针。 首先,计算出 ...
分类:
其他好文 时间:
2019-10-01 22:28:05
阅读次数:
115
"传送门" 题意: 对给定字符串$s$,求其第$k$小子串,重复串被计入以及不被计入这两种情况都需考虑。 思路: 首先构建后缀自动机,之后就考虑在后缀自动机上$dp$。 我们知道如果要考虑重复串,那么就会与一个结点的$endpos$集合的大小有关,对于一条边$(u,v)$,如果结点$u$的$endp ...
分类:
其他好文 时间:
2019-08-31 15:17:26
阅读次数:
87
[TJOI2015]弦论(sam) 首先建出当前串s的sam。然后分t=1或者0两种情况讨论。 当t=1时,位置不同的相同字符串算不同。 设开头为某一个x对应的字符串的子串个数是$f[x]$,节点x对应的字符串在整个字符串中出现了$s[x]$次。我们可以通过dfs算法在$parent$树上跑算出$f ...
分类:
其他好文 时间:
2019-08-17 21:52:46
阅读次数:
90
"Link" 很经典的一道后缀自动机的裸体 我们首先不考虑题目中的两种情况,只考虑如何输出第k大的字串。很显然,有一个性质, 首位字符越大,字串排名越靠后 ,我们可以考虑一个字符一个字符地去枚举(在后缀自动机上跑,字符必须存在),若第k大的子串是以当前字符开头的,那么就往下走,否则就继续枚举下一个字 ...
分类:
其他好文 时间:
2019-07-22 16:46:19
阅读次数:
94
题目描述 为了提高智商,ZJY开始学习弦论。这一天,她在《 String theory》中看到了这样一道问题:对于一个给定的长度为n的字符串,求出它的第k小子串是什么。你能帮帮她吗? 输入输出格式 输入格式: 第一行是一个仅由小写英文字母构成的字符串s 第二行为两个整数t和k,t为0则表示不同位置的 ...
分类:
其他好文 时间:
2019-05-03 16:39:22
阅读次数:
114