摘要: "题目" 题意: ~~题目翻译很清楚,告辞。~~ sol: 我们考虑到 $lcp(x,y)$ 等价于反串SAM上的 $dep_{lca(x,y)}$。 然后我们对 给出串的反串 建一个后缀自动机,然后记一下 $pos_x$ 是 $x$ 这个位置在后缀自动机上的节点位置。 怎么求 $\sum_{a\i 阅读全文
posted @ 2020-03-28 02:55 _Isaunoya 阅读(136) 评论(0) 推荐(0) 编辑
摘要: SAM 上面 dp 就好了QAQ。 阅读全文
posted @ 2020-03-27 13:55 _Isaunoya 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 答案是 $\sum \frac{sz_u (sz_u 1)}{2} (len_u len_{fa_u})$。 阅读全文
posted @ 2020-03-27 13:54 _Isaunoya 阅读(122) 评论(0) 推荐(0) 编辑
摘要: QAQ 阅读全文
posted @ 2020-03-27 13:25 _Isaunoya 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 如果颜色数 $\geq$ k 就可以 $cnt_u += len_u len_{fa_u}$ 也就是这个点包含的字符串数量。 然后 $cnt_u$ 表示 u 节点对应的字符串所包含的子串的贡献,这样就可以算完了。 就很简单了。 阅读全文
posted @ 2020-03-27 13:10 _Isaunoya 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 判断连通性,就像狼人那题,我们设 $x,y$ 连通就变成 $x,y$ 这个点上有值。 我们设当前 $now$ 时刻,一共有 $T$ 时刻,假设最开始 $now=0$ 的时候连通,如果你不去动他,他的贡献就是不变的,意思是如果你 $t=0$ 的时候他们就连通,那么你只需要查询这个点的值,以及减掉 $T 阅读全文
posted @ 2020-03-27 13:07 _Isaunoya 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 考虑选一对$A$,$B$,使得 $A_i B_i = A_j B_j$,$|A| = |B|$ 。 $A$,$B$ 不相交,否则就是 $\sum LCP(i,j)$。 然后转化成 $A_i A_j = B_i B_j$ 然后令 $j = i 1$ 丢到 $SAM$ 里。 我们考虑分类讨论,先考虑不相 阅读全文
posted @ 2020-03-25 20:24 _Isaunoya 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 我们直接把重复的部分去掉。 $\sum len_i len_{fa_i}$ 阅读全文
posted @ 2020-03-25 19:43 _Isaunoya 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 对长串做个后缀自动机上线段树合并,然后你对每个短串搞个SAM在长串后缀自动机上跑。 答案就是 $\sum \max(0, len_i max(len_fa_i, endmax_{pos_i}))$ $pos_i$ 指的是 $i$ 节点对应原字符串的位置。 阅读全文
posted @ 2020-03-25 19:36 _Isaunoya 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 把 $b_i |a_i x|$ 的 $b_i$ 提出来然后单调队列就没了。 阅读全文
posted @ 2020-03-25 19:30 _Isaunoya 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 求在两个串里面都出现一次的子串长度[最短] 我们直接建一个广义SAM,每个串上面标记一下颜色,dfs一遍标记颜色总数然后没了。 阅读全文
posted @ 2020-03-25 19:29 _Isaunoya 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 板子 注意特判一下能直接拼凑出来的。 阅读全文
posted @ 2020-03-25 19:26 _Isaunoya 阅读(131) 评论(0) 推荐(0) 编辑
摘要: ~~憨批题,怎么我CF的时候就做不出这个题啊啊啊啊啊啊啊~~ 题意: 给你 $k$,$k$个串 $t_i$ 以及价值 $c_i$($\sum |t_i| \leq 10^3$),然后给你一个串 $s$($|s|\leq 4 \times 10^5$),$s$ 中最多包含 $14$ 个 $?$,字符集 阅读全文
posted @ 2020-03-25 19:24 _Isaunoya 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 板子。 阅读全文
posted @ 2020-03-25 19:23 _Isaunoya 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题意: 我们定义 $\forall i ,s_i$ 是给定串 $S$ 的子串,且 $s_{i 1}$ 在 $s_{i}$ 要出现至少两次。求最大的 $k$,使得 $\forall i,s_i \in S$。 sol: 我们考虑到,对于一个点 $i$,$fa_i$ 是 $i$ 的子串,并且是后缀,我们 阅读全文
posted @ 2020-03-22 23:32 _Isaunoya 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个串 $S$,再给出 $n$ 个串 $T_i$, $q$ 次询问 $S[pl,pr]$ 在 $ T_{[l,r]}$哪个串出现次数最多。 solution: 不难想到我们找 $S[pl,pr]$ 是可以记录 $ed_{pr}$ 然后倍增上去找到这个区间所对应的 SAM 节点。 我们把 阅读全文
posted @ 2020-03-22 23:29 _Isaunoya 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 二进制分组,其实是下面那个玩意,画的粗略了点。 容易证明每个玩意只被合并了 $\log$ 次,因为有 $\log$ 层,所以我们可以这样抽象理解他的复杂度是 $n\ \log\ n$ 的。 然后讲一下这题的做法,我们发现你这样每次合并的复杂度是可控的,也就是你可以把 trie 的信息也这么合并,然后 阅读全文
posted @ 2020-03-21 17:59 _Isaunoya 阅读(130) 评论(0) 推荐(0) 编辑
摘要: "QAQ" 据说是 SAM 的板子。。 题意是求循环同构,并且去重。 循环同构的定义是,aa的循环同构是aa,ab的循环同构是ab,ba 我们很显然,可以往最后面加上第一个字符,做 $length$ 次,就好了。 考虑怎么删除,由于 SAM 的不同子串个数是 $\sum len_i len_{fa_ 阅读全文
posted @ 2020-03-19 13:25 _Isaunoya 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题意: "here" 求 $s_{[l,r]}$ 在 $s_k$ 的出现次数 很妙的一道题。 我们考虑到 $AC$ 自动机的本质。 $k$ 的子树里都是包含 $s_k$ 的串。 在 $k$ 的子树查询就相当于查询 $s_k$ 出现了几次。 然后我们发现。 这个显然可以根号分治,大于 $\sqrt { 阅读全文
posted @ 2020-03-17 20:38 _Isaunoya 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定多个主串,每次将询问串拆分成多个连续子串,如果该子串在主串中出现,那么这段是合法的,要求一个最大的 $L$ 使得合法的长度 $\geq$ 询问串长度的 $90\%$ 我们发现 $L$ 是可以二分的,我们再考虑怎么 $check$ 这个是否合法,对于一个 $L$。 我们设 $mx_i$ 为 阅读全文
posted @ 2020-03-17 13:56 _Isaunoya 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 掉分了/dk 阅读全文
posted @ 2020-03-16 18:38 _Isaunoya 阅读(115) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-03-16 17:11 _Isaunoya 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 最小树形图 阅读全文
posted @ 2020-03-16 17:07 _Isaunoya 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 都说了非公开看什么看 阅读全文
posted @ 2020-03-16 17:03 _Isaunoya 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 广义后缀自动机板子 阅读全文
posted @ 2020-03-15 13:39 _Isaunoya 阅读(156) 评论(0) 推荐(0) 编辑
摘要: qwq 阅读全文
posted @ 2020-03-12 00:10 _Isaunoya 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 莫队+线段树 阅读全文
posted @ 2020-03-10 22:19 _Isaunoya 阅读(285) 评论(0) 推荐(1) 编辑
摘要: 非公开 阅读全文
posted @ 2020-03-10 18:57 _Isaunoya 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 不填了/dk 阅读全文
posted @ 2020-03-10 18:00 _Isaunoya 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 同下面一题,用map记录就好了 阅读全文
posted @ 2020-03-10 16:59 _Isaunoya 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 倍增,然后数一下有几个深度为 $dep_u$ 的 阅读全文
posted @ 2020-03-10 16:56 _Isaunoya 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 根号分治 $f_x$ 表示询问为 $x$ 的答案,这一部分预处理的复杂度是 $n sqrt n$ $pt_i$ 表示距离 $i$ 最近的数 $tag_i$ 表示距离 $i$ 块最近的数 然后就可以做到 $sqrt$ 修改, $1$ ~ $sqrt$ 查询了 阅读全文
posted @ 2020-03-09 21:10 _Isaunoya 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 树分块 阅读全文
posted @ 2020-03-08 23:33 _Isaunoya 阅读(158) 评论(0) 推荐(1) 编辑
摘要: 设 $f_i = \sum_{j=i+1}^{n} d_{i,j}$ 转移方程是 $f_i = f_k + (n k) (a_i k) + (k i)$ $n k$ 是因为我们认定 $ k$ 的点都会经过 $k$ $a_i k$ 是因为我们有一部分是重复的,这样算会经过两次,所以要剪掉 $k i$ 阅读全文
posted @ 2020-03-04 21:45 _Isaunoya 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 大致题意:每次操作可以使得序列某个数 1/+1,问最少多少次操作使得全局gcd 1 死也想不到随机化。。 我们考虑到 $\gcd == 2$ 的情况,显然答案的上界是 $n$。 我们考虑答案是不可能超过 $n$ 的,那么至少 $\frac{n}{2}$ 是 0 或 1 。 然后直接随机 $x$ 和 阅读全文
posted @ 2020-03-04 19:03 _Isaunoya 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 我们发现0是不能跨越区间的,且奇偶性不变,那么我们就分类讨论一下左端点开始的位置 奇数位当0处理,偶数位当1处理QAQ 阅读全文
posted @ 2020-03-04 18:33 _Isaunoya 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 时刻要记住正难则反,可以知道总数是 $26^m$,我们可以减掉不合法的。 AC自动机上面dp,不合法的显然就是没有出现任意的一个串,根据rainy的教导 单词 $b,bce,abcd$ 的 ACAM 然后 $dp$ 就好了,由于点数不超过 $n m \leq 6000$,然后你每一位枚举复杂度是 $ 阅读全文
posted @ 2020-03-03 14:05 _Isaunoya 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 线段树分治 考虑删掉所有的边权为 $i$ 的边,如果连通那么就是答案,线段树分治就是保证了优先遍历小的部分 阅读全文
posted @ 2020-03-03 14:00 _Isaunoya 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 考虑到 $ans_{i+1} \leq ans_i$ 且 $ans_{i} \leq \frac{n}{i}$ 然后胡乱分析一波,考虑根号分治,一部分暴力,一部分按根号的性质来,考虑到块取成 $q$,一部分暴力的复杂度是 $nq$,然后你发现剩下的值域仅仅是 $[0,\frac{n}{q}]$,由于 阅读全文
posted @ 2020-03-03 13:56 _Isaunoya 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 分块板子。。/fad 阅读全文
posted @ 2020-03-02 22:17 _Isaunoya 阅读(148) 评论(1) 推荐(0) 编辑