摘要: 题目 点这里看题目。 分析 考虑将所有子序列画成$n\times n$的表的形式,表中的元素$(x,y)$就表示子序列$a[x:y]$的最小值。($x>y$则$(x,y)=0$) 那么,对于一个元素$a_i$,记它左边第一个小于它的位置为$lef(i)$,右边第一个小于等于它的位置为$rig(i)\ 阅读全文
posted @ 2020-06-01 12:42 crashed 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目 点这里看题目。 分析 由于这个问题与子串相关,那么我们就先把后缀自动机给建出来。 题目条件非常特殊——“出现至少两次”。而 fail 树上一个状态的祖先状态,根据定义,至少会在当前状态中出现一次。我们便可以知道,答案所对应的状态在 fail 树上一定呈祖孙关系。 我们可以用倍增法,求出状态 \ 阅读全文
posted @ 2020-05-30 22:32 crashed 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目 点这里看题目。 分析 可以发现,符合条件的分数约分后,其分母必须为$2m5k$。因此,原分数一定可以表示为: \(\frac{XY}{2^m5^kX}\) 其中$(10,X)=1, XY\le n, 2m5kX\le n$。 可以发现,这样枚举可以保证分母不重复,因而保证枚举出的分数不重复。 阅读全文
posted @ 2020-05-30 21:49 crashed 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目 点这里看题目。 分析 第一步,考虑转换一下题意。 设$a[i]$为任意字符串的第$i$个字符(从$1$标号)。对于两个在原题中要求相等的串——$s_i$和$s_{k-i+1}$。令$l=|s_i|$,\(n=|S|\),\(s_i[1]=S[p]\)(位置对应)。则: \(s_i=S[p]S[ 阅读全文
posted @ 2020-05-30 11:04 crashed 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目 点这里看题目。 分析 我们不难想到,对于系数进行一下的拆分: \[ \begin{aligned} f(u,j)&=\bigoplus_{(u,v)\in E} f(v,j-1)\\ &=\bigoplus_{(u,v)\in E}\bigoplus_{(v,w)\in E} f(w,j-2) 阅读全文
posted @ 2020-05-30 09:38 crashed 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目 点这里看题目。 分析 先对所有的模式串建立广义后缀自动机。 我们需要求出每个节点的$end-pos$集合,这个可以在 \(fail\) 树上用线段树合并快速预处理。 考虑询问。由于字符串的子串就是前缀的后缀,因此我们可以对于每个前缀,处理出它在自动机上的$LCS$对应的节点。那么一个子串在自动 阅读全文
posted @ 2020-05-29 13:31 crashed 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目 "点这里" 看题目。 分析 首先,我们不需要真的从 AC 自动机中把串删掉。由于我们计算贡献和,我们只需要在 AC 自动机上,把已经删除的串的贡献抹掉就可以了。 接着考虑询问。这是一个很基础的问题,一般我们会在 AC 自动机上面处理出每个状态的贡献和,并且将询问的字符串在 AC 自动机上面跑一 阅读全文
posted @ 2020-05-19 14:02 crashed 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目 "点这里" 看题目。 分析 首先对于模式串建立 AC 自动机,并且计算出每个状态$p$的贡献总和$con(p)$。 考虑一个朴素的 DP : $f(i,p)$:当前串长度为$i$,匹配到$p$上的最大答案。 设在$p$后加入字符$c$会转移到$t(p,c)$, DP 的转移如下: $$f(i+ 阅读全文
posted @ 2020-05-18 14:06 crashed 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目 "点这里" 看题目。 分析 我们想要建立一个只包含多个串的公共子串的后缀自动机。最简单的,先建立一个串的后缀自动机。 然后考虑如何进行扩展。在两个串的情况下,我们可以直接把另一个串放到后缀自动机上面跑,中途得到答案。在多个串的情况下显然就不会这么简单了。 考虑每一个串都放到后缀自动机上面跑一跑 阅读全文
posted @ 2020-05-16 08:45 crashed 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目 "点这里" 看题目。 分析 补习知识: 既然可以求出原串中不同的子串的个数,那么我们同样可以求出含重复子串的个数,同样是$dp$: $g(u)$:从$u$节点出发含重复的子串的数量。 转移: $$g(u)=|end pos(u)|+\sum_{(u,v)\in DAWG} g(v)$$ 因为可 阅读全文
posted @ 2020-05-16 08:43 crashed 阅读(118) 评论(0) 推荐(0) 编辑