摘要:
"题目" 题意: ~~题目翻译很清楚,告辞。~~ sol: 我们考虑到 $lcp(x,y)$ 等价于反串SAM上的 $dep_{lca(x,y)}$。 然后我们对 给出串的反串 建一个后缀自动机,然后记一下 $pos_x$ 是 $x$ 这个位置在后缀自动机上的节点位置。 怎么求 $\sum_{a\i
阅读全文
posted @ 2020-03-28 02:55
_Isaunoya
阅读(145)
推荐(0)
摘要:
SAM 上面 dp 就好了QAQ。
阅读全文
posted @ 2020-03-27 13:55
_Isaunoya
阅读(190)
推荐(0)
摘要:
答案是 $\sum \frac{sz_u (sz_u 1)}{2} (len_u len_{fa_u})$。
阅读全文
posted @ 2020-03-27 13:54
_Isaunoya
阅读(127)
推荐(0)
posted @ 2020-03-27 13:25
_Isaunoya
阅读(155)
推荐(0)
摘要:
如果颜色数 $\geq$ k 就可以 $cnt_u += len_u len_{fa_u}$ 也就是这个点包含的字符串数量。 然后 $cnt_u$ 表示 u 节点对应的字符串所包含的子串的贡献,这样就可以算完了。 就很简单了。
阅读全文
posted @ 2020-03-27 13:10
_Isaunoya
阅读(143)
推荐(0)
摘要:
判断连通性,就像狼人那题,我们设 $x,y$ 连通就变成 $x,y$ 这个点上有值。 我们设当前 $now$ 时刻,一共有 $T$ 时刻,假设最开始 $now=0$ 的时候连通,如果你不去动他,他的贡献就是不变的,意思是如果你 $t=0$ 的时候他们就连通,那么你只需要查询这个点的值,以及减掉 $T
阅读全文
posted @ 2020-03-27 13:07
_Isaunoya
阅读(155)
推荐(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
阅读(190)
推荐(0)
摘要:
我们直接把重复的部分去掉。 $\sum len_i len_{fa_i}$
阅读全文
posted @ 2020-03-25 19:43
_Isaunoya
阅读(178)
推荐(0)
摘要:
对长串做个后缀自动机上线段树合并,然后你对每个短串搞个SAM在长串后缀自动机上跑。 答案就是 $\sum \max(0, len_i max(len_fa_i, endmax_{pos_i}))$ $pos_i$ 指的是 $i$ 节点对应原字符串的位置。
阅读全文
posted @ 2020-03-25 19:36
_Isaunoya
阅读(145)
推荐(0)
摘要:
把 $b_i |a_i x|$ 的 $b_i$ 提出来然后单调队列就没了。
阅读全文
posted @ 2020-03-25 19:30
_Isaunoya
阅读(149)
推荐(0)
摘要:
求在两个串里面都出现一次的子串长度[最短] 我们直接建一个广义SAM,每个串上面标记一下颜色,dfs一遍标记颜色总数然后没了。
阅读全文
posted @ 2020-03-25 19:29
_Isaunoya
阅读(147)
推荐(0)
摘要:
板子 注意特判一下能直接拼凑出来的。
阅读全文
posted @ 2020-03-25 19:26
_Isaunoya
阅读(134)
推荐(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
阅读(290)
推荐(0)
posted @ 2020-03-25 19:23
_Isaunoya
阅读(150)
推荐(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
阅读(120)
推荐(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
阅读(244)
推荐(0)
摘要:
二进制分组,其实是下面那个玩意,画的粗略了点。 容易证明每个玩意只被合并了 $\log$ 次,因为有 $\log$ 层,所以我们可以这样抽象理解他的复杂度是 $n\ \log\ n$ 的。 然后讲一下这题的做法,我们发现你这样每次合并的复杂度是可控的,也就是你可以把 trie 的信息也这么合并,然后
阅读全文
posted @ 2020-03-21 17:59
_Isaunoya
阅读(138)
推荐(0)
摘要:
"QAQ" 据说是 SAM 的板子。。 题意是求循环同构,并且去重。 循环同构的定义是,aa的循环同构是aa,ab的循环同构是ab,ba 我们很显然,可以往最后面加上第一个字符,做 $length$ 次,就好了。 考虑怎么删除,由于 SAM 的不同子串个数是 $\sum len_i len_{fa_
阅读全文
posted @ 2020-03-19 13:25
_Isaunoya
阅读(112)
推荐(0)
摘要:
题意: "here" 求 $s_{[l,r]}$ 在 $s_k$ 的出现次数 很妙的一道题。 我们考虑到 $AC$ 自动机的本质。 $k$ 的子树里都是包含 $s_k$ 的串。 在 $k$ 的子树查询就相当于查询 $s_k$ 出现了几次。 然后我们发现。 这个显然可以根号分治,大于 $\sqrt {
阅读全文
posted @ 2020-03-17 20:38
_Isaunoya
阅读(243)
推荐(0)
摘要:
题意: 给定多个主串,每次将询问串拆分成多个连续子串,如果该子串在主串中出现,那么这段是合法的,要求一个最大的 $L$ 使得合法的长度 $\geq$ 询问串长度的 $90\%$ 我们发现 $L$ 是可以二分的,我们再考虑怎么 $check$ 这个是否合法,对于一个 $L$。 我们设 $mx_i$ 为
阅读全文
posted @ 2020-03-17 13:56
_Isaunoya
阅读(100)
推荐(0)
posted @ 2020-03-16 18:38
_Isaunoya
阅读(128)
推荐(0)
posted @ 2020-03-16 17:11
_Isaunoya
阅读(0)
推荐(0)
posted @ 2020-03-16 17:07
_Isaunoya
阅读(1)
推荐(0)
posted @ 2020-03-16 17:03
_Isaunoya
阅读(0)
推荐(0)
posted @ 2020-03-15 13:39
_Isaunoya
阅读(170)
推荐(0)
posted @ 2020-03-12 00:10
_Isaunoya
阅读(145)
推荐(0)
posted @ 2020-03-10 22:19
_Isaunoya
阅读(324)
推荐(1)
posted @ 2020-03-10 18:57
_Isaunoya
阅读(7)
推荐(0)
posted @ 2020-03-10 18:00
_Isaunoya
阅读(151)
推荐(0)
posted @ 2020-03-10 16:59
_Isaunoya
阅读(213)
推荐(0)
摘要:
倍增,然后数一下有几个深度为 $dep_u$ 的
阅读全文
posted @ 2020-03-10 16:56
_Isaunoya
阅读(113)
推荐(0)
摘要:
根号分治 $f_x$ 表示询问为 $x$ 的答案,这一部分预处理的复杂度是 $n sqrt n$ $pt_i$ 表示距离 $i$ 最近的数 $tag_i$ 表示距离 $i$ 块最近的数 然后就可以做到 $sqrt$ 修改, $1$ ~ $sqrt$ 查询了
阅读全文
posted @ 2020-03-09 21:10
_Isaunoya
阅读(89)
推荐(0)
posted @ 2020-03-08 23:33
_Isaunoya
阅读(163)
推荐(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
阅读(120)
推荐(0)
摘要:
大致题意:每次操作可以使得序列某个数 1/+1,问最少多少次操作使得全局gcd 1 死也想不到随机化。。 我们考虑到 $\gcd == 2$ 的情况,显然答案的上界是 $n$。 我们考虑答案是不可能超过 $n$ 的,那么至少 $\frac{n}{2}$ 是 0 或 1 。 然后直接随机 $x$ 和
阅读全文
posted @ 2020-03-04 19:03
_Isaunoya
阅读(323)
推荐(0)
摘要:
我们发现0是不能跨越区间的,且奇偶性不变,那么我们就分类讨论一下左端点开始的位置 奇数位当0处理,偶数位当1处理QAQ
阅读全文
posted @ 2020-03-04 18:33
_Isaunoya
阅读(190)
推荐(0)
摘要:
时刻要记住正难则反,可以知道总数是 $26^m$,我们可以减掉不合法的。 AC自动机上面dp,不合法的显然就是没有出现任意的一个串,根据rainy的教导 单词 $b,bce,abcd$ 的 ACAM 然后 $dp$ 就好了,由于点数不超过 $n m \leq 6000$,然后你每一位枚举复杂度是 $
阅读全文
posted @ 2020-03-03 14:05
_Isaunoya
阅读(145)
推荐(0)
摘要:
线段树分治 考虑删掉所有的边权为 $i$ 的边,如果连通那么就是答案,线段树分治就是保证了优先遍历小的部分
阅读全文
posted @ 2020-03-03 14:00
_Isaunoya
阅读(162)
推荐(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
阅读(129)
推荐(0)
posted @ 2020-03-02 22:17
_Isaunoya
阅读(160)
推荐(0)