上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 63 下一页
摘要: VIII.CF873F Forbidden Indices 只比模板多一点点的伪模板。非常easy。 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; int n,cnt=1; char s[200100], 阅读全文
posted @ 2021-04-01 12:03 Troverld 阅读(61) 评论(0) 推荐(0)
摘要: VII.[BZOJ2555]SubString 如果要在动态建SAM的过程中同时维护parent tree中的子树和,明显需要一种支持修改树的数据结构来维护。显然,这里应该使用LCT。 维护子树和,可以考虑LCT中经典的记录虚子树和的trick。然后剩下就是俩模板的拼接了。 不知道为什么,交上去会M 阅读全文
posted @ 2021-04-01 12:01 Troverld 阅读(71) 评论(0) 推荐(0)
摘要: VI.[TJOI2015]弦论 SAM应用4:求字典序第 \(k\) 大子串。 前面说过,自动机部分接受且仅接受原串后缀,但实际上自动机中节点都是后缀的前缀,即子串。于是在自动机上先倒着拓扑DP一下,然后正着扫一遍即可求出第 \(k\) 大子串。而当相同子串计算多次时,我们知道一个子串的出现次数即为 阅读全文
posted @ 2021-04-01 11:59 Troverld 阅读(68) 评论(0) 推荐(0)
摘要: V.[APIO2014]回文串 具体分析详见本人的SA题解,这里主要是讲解使用SAM求子串出现次数的方法。 SAM应用3:查询一个子串的出现次数。 这个思想很简单,只需要找到该子串对应的 \(\text{endpos}\) 等价类是哪个即可。 我们考虑记录 \(id_i\) 表示以位置 \(i\) 阅读全文
posted @ 2021-04-01 11:56 Troverld 阅读(62) 评论(0) 推荐(0)
摘要: IV.[TJOI2019]甲苯先生和大中锋的字符串 判断一个子串出现几次,我们仍然可以采取之前提到的遍历parent tree的方法。 考虑一个等价类。明显,这个等价类中所有串都出现且仅出现了(等价类出现的次数)。若这个次数恰好为 \(k\),则从类中最长的串到最短的串,所有长度的串的数量都增加了 阅读全文
posted @ 2021-04-01 11:54 Troverld 阅读(44) 评论(0) 推荐(0)
摘要: III.[ZJOI2015]诸神眷顾的幻想乡 假如这棵树是定根的,那么其就可以被看作一棵trie,trie上本质不同子串数可以直接被建立广义SAM解决;但是这棵树不定根,路径可能拐弯,咋办呢? 发现,其保证叶子数量 \(\leq20\)。这就意味着我们可以将以每个叶子为根所形成的trie并在一起形成 阅读全文
posted @ 2021-04-01 11:53 Troverld 阅读(63) 评论(0) 推荐(0)
摘要: II.【模板】广义后缀自动机(广义 SAM) 我们之前提到过一句话:“后缀自动机的构造是在线的,增量的。”而这题,便是其应用之一。 首先,有一种暴力的解法,是直接将所有东西全都依次插入SAM,每次插入从 \(1\) 开始。但是,这样插入完后,如果你输出构建的SAM,会发现有一些点是无法从根到达的! 阅读全文
posted @ 2021-04-01 11:51 Troverld 阅读(112) 评论(0) 推荐(0)
摘要: I.【模板】后缀自动机 (SAM) 虽说是模板但也不是纯粹板子! SAM应用1:求一个子串的出现次数(相当于字符串匹配)。 因为同一个 \(\text{endpos}\) 类中所有东西的结束集合都是相同的,故它们在母串中的出现次数也是相同的。因此,在该类中就应该贪心地选择最长的串,也即 \(\tex 阅读全文
posted @ 2021-04-01 11:28 Troverld 阅读(114) 评论(0) 推荐(0)
摘要: SAM是Suffix Automaton 萨菲克斯自动马桶的缩写,其中文翻译是后缀自动机。 顾名思义,其是一个自动机。SAM接受一个串,当且仅当其是母串 \(S\) 的后缀。 这里我们给出一些定义: 所有使用黑板粗体格式的字符 \(\mathbb{S}\),表示集合; 所有使用大写格式的字符 \(S 阅读全文
posted @ 2021-04-01 11:27 Troverld 阅读(205) 评论(0) 推荐(0)
摘要: XXXVI.LOJ#6198. 谢特 SA+笛卡尔树+01trie+启发式合并模板四合一,省选模板练习必备神器 考虑SA后建立笛卡尔树。问题转换为在笛卡尔树的一段区间中(此时该区间内任意两条后缀的LCP长度均为区间中 \(ht\) 最小值)任意两条后缀的 \(\text{xor}\) 最大值。是经典 阅读全文
posted @ 2021-04-01 11:25 Troverld 阅读(82) 评论(0) 推荐(0)
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 63 下一页