03 2020 档案

摘要:题意: 给你 $n$ 个点,已知 $m$ 对关系 $[u,v] (|u v| \leq k)$,$k$ 给出,询问 $q$ 次,每次问你 $[l,r]$ 有多少个连通块。 sol: 显然的回滚莫队,我们按块来分,对于每个块 $i$,我们可以把所有 $l\in block_i$ 丢到 $i$ 里面,然 阅读全文
posted @ 2020-03-31 02:11 _Isaunoya 阅读(178) 评论(0) 推荐(0)
摘要:这题似乎就 KD Tree 板子。 矩形加法,矩形乘法,QAQ。 都是离线下来按顺序添加的,所以没有什么关系。 阅读全文
posted @ 2020-03-31 01:06 _Isaunoya 阅读(138) 评论(0) 推荐(0)
摘要:~~复习一下点分治(?)~~ 我们发现 $a_i \leq 2\times 10^5$ calc 一手,发现质数不会太多,直接暴力就好了。 阅读全文
posted @ 2020-03-31 01:02 _Isaunoya 阅读(159) 评论(0) 推荐(0)
摘要:这个其实是一个树形的 LIS。 我们考虑到 multiset 怎么维护一个序列,然后扩展到树上,这样就可以了。 怎么维护一个序列呢? 我们考虑 $s.size()$ 是当前的 LIS 长度,然后我们插入一个数,要么比最大的要大,比最大的要大直接丢进去,这样长度显然也是+1。 如果比最大的要小?那么我 阅读全文
posted @ 2020-03-29 23:08 _Isaunoya 阅读(139) 评论(0) 推荐(0)
摘要:~~草,不会做啊不会做啊不会做啊……~~ 题意: 维护一个长度为n的正整数序列a_1,a_2,...,a_n,支持以下两种操作: 1 k,将序列a从小到大排序,输出a_k的值。 2 k,将所有严格大于k的数a_i减去k。 sol: 平衡树,大家都会,减掉 $k$ 后,相对位置发生改变的,只有 $[1 阅读全文
posted @ 2020-03-29 22:36 _Isaunoya 阅读(806) 评论(1) 推荐(0)
摘要:身体是革命的本钱,这道题是关于运动的。 Alice和Bob在进行乒乓球比赛,比赛一共打了 n 个球,对于每一球,如果Alice赢了,那么裁判员会在计分板上记下'A',如果Bob赢了则会记下'B'。 时间转眼间到了2050年,计分板上某些信息因为时间流逝丢失了,但我们想要复现当年的激烈局面。 丢失的位 阅读全文
posted @ 2020-03-29 12:24 _Isaunoya 阅读(117) 评论(0) 推荐(0)
摘要:不会$dp$…… 我们发现绝对值的问题不太好搞,所以我们按顺序插入就可以了。 我们设一个状态 $dp_{i,j,k,l}$ 为 插入前 $i$ 个数,已经构成 $j$ 个连通块,$k$ 的贡献,$l$ 表示$1$和$n$的边界问题 的方案数。 那么答案显而易见是 $\frac{\sum_{k=m}^ 阅读全文
posted @ 2020-03-29 11:15 _Isaunoya 阅读(146) 评论(0) 推荐(0)
摘要:update on 4.17 题意 给定一个长度为 $n$ 的字符串 $s$,$m$ 对 $(l_i,r_i)$,回答 $q$ 个询问,每次询问给定一个长度为 $k$ 的字符串 $w$ 以及一对 $(L,R)$,求所有满足 $i\in [L,R]$ 的 $w[l_i: r_i]$ 在 $s$ 出现次 阅读全文
posted @ 2020-03-28 19:44 _Isaunoya 阅读(140) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-03-28 14:33 _Isaunoya 阅读(0) 评论(0) 推荐(0)
摘要:瞎搞题,乱写都能过。 阅读全文
posted @ 2020-03-28 13:18 _Isaunoya 阅读(208) 评论(0) 推荐(0)
摘要:"题目" 题意: ~~题目翻译很清楚,告辞。~~ sol: 我们考虑到 $lcp(x,y)$ 等价于反串SAM上的 $dep_{lca(x,y)}$。 然后我们对 给出串的反串 建一个后缀自动机,然后记一下 $pos_x$ 是 $x$ 这个位置在后缀自动机上的节点位置。 怎么求 $\sum_{a\i 阅读全文
posted @ 2020-03-28 02:55 _Isaunoya 阅读(149) 评论(0) 推荐(0)
摘要:SAM 上面 dp 就好了QAQ。 阅读全文
posted @ 2020-03-27 13:55 _Isaunoya 阅读(196) 评论(0) 推荐(0)
摘要:答案是 $\sum \frac{sz_u (sz_u 1)}{2} (len_u len_{fa_u})$。 阅读全文
posted @ 2020-03-27 13:54 _Isaunoya 阅读(130) 评论(0) 推荐(0)
摘要:QAQ 阅读全文
posted @ 2020-03-27 13:25 _Isaunoya 阅读(157) 评论(0) 推荐(0)
摘要:如果颜色数 $\geq$ k 就可以 $cnt_u += len_u len_{fa_u}$ 也就是这个点包含的字符串数量。 然后 $cnt_u$ 表示 u 节点对应的字符串所包含的子串的贡献,这样就可以算完了。 就很简单了。 阅读全文
posted @ 2020-03-27 13:10 _Isaunoya 阅读(145) 评论(0) 推荐(0)
摘要:判断连通性,就像狼人那题,我们设 $x,y$ 连通就变成 $x,y$ 这个点上有值。 我们设当前 $now$ 时刻,一共有 $T$ 时刻,假设最开始 $now=0$ 的时候连通,如果你不去动他,他的贡献就是不变的,意思是如果你 $t=0$ 的时候他们就连通,那么你只需要查询这个点的值,以及减掉 $T 阅读全文
posted @ 2020-03-27 13:07 _Isaunoya 阅读(160) 评论(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 阅读(193) 评论(0) 推荐(0)
摘要:我们直接把重复的部分去掉。 $\sum len_i len_{fa_i}$ 阅读全文
posted @ 2020-03-25 19:43 _Isaunoya 阅读(181) 评论(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 阅读(148) 评论(0) 推荐(0)
摘要:把 $b_i |a_i x|$ 的 $b_i$ 提出来然后单调队列就没了。 阅读全文
posted @ 2020-03-25 19:30 _Isaunoya 阅读(150) 评论(0) 推荐(0)
摘要:求在两个串里面都出现一次的子串长度[最短] 我们直接建一个广义SAM,每个串上面标记一下颜色,dfs一遍标记颜色总数然后没了。 阅读全文
posted @ 2020-03-25 19:29 _Isaunoya 阅读(150) 评论(0) 推荐(0)
摘要:板子 注意特判一下能直接拼凑出来的。 阅读全文
posted @ 2020-03-25 19:26 _Isaunoya 阅读(140) 评论(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 阅读(294) 评论(0) 推荐(0)
摘要:板子。 阅读全文
posted @ 2020-03-25 19:23 _Isaunoya 阅读(152) 评论(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 阅读(126) 评论(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 阅读(245) 评论(0) 推荐(0)
摘要:二进制分组,其实是下面那个玩意,画的粗略了点。 容易证明每个玩意只被合并了 $\log$ 次,因为有 $\log$ 层,所以我们可以这样抽象理解他的复杂度是 $n\ \log\ n$ 的。 然后讲一下这题的做法,我们发现你这样每次合并的复杂度是可控的,也就是你可以把 trie 的信息也这么合并,然后 阅读全文
posted @ 2020-03-21 17:59 _Isaunoya 阅读(140) 评论(0) 推荐(0)
摘要:"QAQ" 据说是 SAM 的板子。。 题意是求循环同构,并且去重。 循环同构的定义是,aa的循环同构是aa,ab的循环同构是ab,ba 我们很显然,可以往最后面加上第一个字符,做 $length$ 次,就好了。 考虑怎么删除,由于 SAM 的不同子串个数是 $\sum len_i len_{fa_ 阅读全文
posted @ 2020-03-19 13:25 _Isaunoya 阅读(117) 评论(0) 推荐(0)
摘要:题意: "here" 求 $s_{[l,r]}$ 在 $s_k$ 的出现次数 很妙的一道题。 我们考虑到 $AC$ 自动机的本质。 $k$ 的子树里都是包含 $s_k$ 的串。 在 $k$ 的子树查询就相当于查询 $s_k$ 出现了几次。 然后我们发现。 这个显然可以根号分治,大于 $\sqrt { 阅读全文
posted @ 2020-03-17 20:38 _Isaunoya 阅读(246) 评论(0) 推荐(0)
摘要:题意: 给定多个主串,每次将询问串拆分成多个连续子串,如果该子串在主串中出现,那么这段是合法的,要求一个最大的 $L$ 使得合法的长度 $\geq$ 询问串长度的 $90\%$ 我们发现 $L$ 是可以二分的,我们再考虑怎么 $check$ 这个是否合法,对于一个 $L$。 我们设 $mx_i$ 为 阅读全文
posted @ 2020-03-17 13:56 _Isaunoya 阅读(103) 评论(0) 推荐(0)
摘要:掉分了/dk 阅读全文
posted @ 2020-03-16 18:38 _Isaunoya 阅读(130) 评论(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 阅读(176) 评论(0) 推荐(0)
摘要:qwq 阅读全文
posted @ 2020-03-12 00:10 _Isaunoya 阅读(146) 评论(0) 推荐(0)
摘要:莫队+线段树 阅读全文
posted @ 2020-03-10 22:19 _Isaunoya 阅读(325) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2020-03-10 18:57 _Isaunoya 阅读(7) 评论(0) 推荐(0)
摘要:不填了/dk 阅读全文
posted @ 2020-03-10 18:00 _Isaunoya 阅读(152) 评论(0) 推荐(0)
摘要:同下面一题,用map记录就好了 阅读全文
posted @ 2020-03-10 16:59 _Isaunoya 阅读(216) 评论(0) 推荐(0)
摘要:倍增,然后数一下有几个深度为 $dep_u$ 的 阅读全文
posted @ 2020-03-10 16:56 _Isaunoya 阅读(114) 评论(0) 推荐(0)
摘要:根号分治 $f_x$ 表示询问为 $x$ 的答案,这一部分预处理的复杂度是 $n sqrt n$ $pt_i$ 表示距离 $i$ 最近的数 $tag_i$ 表示距离 $i$ 块最近的数 然后就可以做到 $sqrt$ 修改, $1$ ~ $sqrt$ 查询了 阅读全文
posted @ 2020-03-09 21:10 _Isaunoya 阅读(90) 评论(0) 推荐(0)
摘要:树分块 阅读全文
posted @ 2020-03-08 23:33 _Isaunoya 阅读(163) 评论(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 阅读(121) 评论(0) 推荐(0)
摘要:大致题意:每次操作可以使得序列某个数 1/+1,问最少多少次操作使得全局gcd 1 死也想不到随机化。。 我们考虑到 $\gcd == 2$ 的情况,显然答案的上界是 $n$。 我们考虑答案是不可能超过 $n$ 的,那么至少 $\frac{n}{2}$ 是 0 或 1 。 然后直接随机 $x$ 和 阅读全文
posted @ 2020-03-04 19:03 _Isaunoya 阅读(328) 评论(0) 推荐(0)
摘要:我们发现0是不能跨越区间的,且奇偶性不变,那么我们就分类讨论一下左端点开始的位置 奇数位当0处理,偶数位当1处理QAQ 阅读全文
posted @ 2020-03-04 18:33 _Isaunoya 阅读(192) 评论(0) 推荐(0)
摘要:时刻要记住正难则反,可以知道总数是 $26^m$,我们可以减掉不合法的。 AC自动机上面dp,不合法的显然就是没有出现任意的一个串,根据rainy的教导 单词 $b,bce,abcd$ 的 ACAM 然后 $dp$ 就好了,由于点数不超过 $n m \leq 6000$,然后你每一位枚举复杂度是 $ 阅读全文
posted @ 2020-03-03 14:05 _Isaunoya 阅读(147) 评论(0) 推荐(0)
摘要:线段树分治 考虑删掉所有的边权为 $i$ 的边,如果连通那么就是答案,线段树分治就是保证了优先遍历小的部分 阅读全文
posted @ 2020-03-03 14:00 _Isaunoya 阅读(163) 评论(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 阅读(137) 评论(0) 推荐(0)
摘要:分块板子。。/fad 阅读全文
posted @ 2020-03-02 22:17 _Isaunoya 阅读(161) 评论(1) 推荐(0)
摘要:无解肯定是一个都没有。 首先你要想到一个贪心策略 就是要染满一列,然后再染其他列 很显然可以用 $k$ 行染 $k$ 列,然后你发现,如果第 $k$ 列没有? 随便挑个来染上,多1的代价。 最后的话,看一下有多少个没染完的,搞下就完了 只能scanf,wdnmd 阅读全文
posted @ 2020-03-02 17:56 _Isaunoya 阅读(137) 评论(0) 推荐(0)
摘要:建一个超级源点,建新边,然后就可以对于这个超级源点跑最小树形图了 阅读全文
posted @ 2020-03-01 17:23 _Isaunoya 阅读(229) 评论(0) 推荐(0)
摘要:满足决策单调性 枚举增量,然后枚举余数,就可以了QAQ 阅读全文
posted @ 2020-03-01 16:27 _Isaunoya 阅读(112) 评论(0) 推荐(0)