Loading

摘要:题意 思路 好像还是回文自动机裸体,但是 $\text{Manacher}$ +后缀自动机+倍增也可以解决。 首先可以一遍 $\text{Manacher}$ 得到本质不同的回文串,然后分别求一次出现次数,更新答案。不能发现后缀自动机可以比较轻松的求出一个字串的出现次数,但是需要快速回答。所以需要快 阅读全文
posted @ 2019-04-27 07:59 Paulliant 阅读(196) 评论(0) 推荐(0) 编辑
摘要:题意 求一个字符串中本质不同的回文子串的个数。 $ 1\leq |string| \leq 100000$ 思路 好像是回文自动机的裸题,但是可以用 $\text{Manacher}$ (马拉车)算法配合后缀数组(或配合哈希表)解决。 $\text{Manacher}$ 算法非常短小精悍,它可以在线 阅读全文
posted @ 2019-04-22 15:39 Paulliant 阅读(66) 评论(0) 推荐(0) 编辑
摘要:题意 https://loj.ac/problem/2713 思路 对于 $\text{P1}$ 的档,首先可以看出 $O(n^3)$ 的方法,即用 $O(n^3)$ 的 $\text{DP}$ 判断合法性以及记录路径。具体是这样的,因为括号匹配可以用一个弹栈的模型去表示(前括号入,后括号弹),用一 阅读全文
posted @ 2019-04-08 21:47 Paulliant 阅读(111) 评论(0) 推荐(0) 编辑
摘要:题意 定义一个字符串的复读数为它可以被分割成最多的的若干个相同连续的子串个数,求一个字符串中复读次数最大的子串位置,若有相同,输出字典序最小的。 $1 \leq \text{length}(string)\leq 10^5$ 思路 后缀数组的 $H$ 是排名相邻两个后缀的 $\text{lcp}$ 阅读全文
posted @ 2019-03-23 11:51 Paulliant 阅读(89) 评论(0) 推荐(0) 编辑
摘要:题意 求字符串 $S$ 本质不同且一定包含字符 $X$ 的子串个数。 $1 \leq |S| \leq 10^5$ 思路 求一个长度为 $n$ 的串 $S$ 本质不同的子串个数可以使用公式 $\displaystyle\sum_{i=1}^{n} n sa[i]+1 H[i]$ ,其中 $H[0]= 阅读全文
posted @ 2019-03-22 22:21 Paulliant 阅读(74) 评论(0) 推荐(0) 编辑
摘要:题意 长度为 $n$ 由数字构成的串,求一段最长满足以下要求的子串: 长度至少为 $5$ 在其他位置有一个不相交的等长子串满足原串或原串加上或减去一个数后与之完全相同。 $1\leq n \leq 20000$ 思路 不难看出题目要求的是满足两两数之差相同的串,那么直接对原串进行差分,剩下的就是求两 阅读全文
posted @ 2019-03-21 17:30 Paulliant 阅读(98) 评论(0) 推荐(0) 编辑
摘要:题意 给定一个长度为 $n​$ 的由正整数构成的串和一个整数 $K​$,求至少出现 $K​$ 次的串的最长长度(可以重叠)。 $1 \leq n\leq 20000​$ $2\leq K\leq n$ 思路 变量及其含义 后缀数组(SA)是一个比较灵活的处理字符串有关问题的算法,它能对一个串的所有后 阅读全文
posted @ 2019-03-21 17:27 Paulliant 阅读(83) 评论(0) 推荐(0) 编辑
摘要:题意 https://loj.ac/problem/2980 思路 区间修改考虑用线段树维护。由于一段区间的 $A,B,C$ 可以表示成由原来的 $A,B,C$ 乘上带上系数再加上某一个某个常数,不妨用矩阵来形象的表示这个转移。 在线段树的每一个节点上,用一个 $1\times 3$ 的矩阵 $\b 阅读全文
posted @ 2019-03-21 11:24 Paulliant 阅读(144) 评论(1) 推荐(1) 编辑
摘要:题意 https://www.lydsy.com/JudgeOnline/problem.php?id=2759 思路 每个节点仅有一条有向出边, 这便是一棵基环内向树,我们可以把它在 $\text{LCT}$ 内部当作有根树维护,外部再保存根的出边。 我们用一个结构体 $(K,B)​$ 表示 $y 阅读全文
posted @ 2019-03-19 14:29 Paulliant 阅读(171) 评论(0) 推荐(0) 编辑
摘要:题意 $n$ 个节点的树,每个点有点权,$m$ 次操作,操作分两种,修改一个节点的点权,对于一个 $(u,v)$ ,询问 $\displaystyle\sum_{i=1}^n\sum_{j=1}^n f(i,j)$ 的值,其中如果路径 $(i,j)$ 与路径 $(u,v)$ 有公共点,$f(i,j) 阅读全文
posted @ 2019-03-19 11:12 Paulliant 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题意 给定一棵 $n$ 个节点, $m$ 条边的无向图,每个点有点权,有 $q$ 个询问,每次询问若删去存在一个节点权值在 $[L,R]$ 范围外的边,剩下的图构成了多少个连通块(询问间相互独立)。 $1\leq n,q \leq 10^5$ $1\leq m \leq 2\times 10^5$ 阅读全文
posted @ 2019-03-19 09:57 Paulliant 阅读(110) 评论(0) 推荐(0) 编辑
摘要:题意 给定一棵 $n$ 个节点的树,每个点有点权。完成 $m$ 个操作,操作四两种,连接 $(x,y)$ ;提 $x$ 为根,并断 $y$ 与它的父节点;增加路径 $(x,y)$ 的节点一个 $w$ 的点权;求路径 $(x,y)$ 的最大点权。 思路 基本概念介绍 $\text{Link Cut T 阅读全文
posted @ 2019-03-08 20:07 Paulliant 阅读(200) 评论(0) 推荐(0) 编辑
摘要:题意 https://www.lydsy.com/JudgeOnline/problem.php?id=1269 思路 伸展树($\text{splay}$)功能比较齐全的模板,能较好的体现 $\text{splay}$ 的功能,简单介绍一下 $\text{splay}$。 基本的概念和函数 $\t 阅读全文
posted @ 2019-02-10 18:18 Paulliant 阅读(237) 评论(0) 推荐(0) 编辑
摘要:题意 https://loj.ac/problem/2302 思路 拆分成每个二进制位的加减来考虑,维护那个整数的二进制位。不难发现,进位就是找右边第一个 $0$ 的位置,并将其赋值为 $1$ ,之间的数全部赋值为 $0$ ,退位就是找右边第一个 $1$ 的位置,并将其赋值为 $0$ ,之间的数全部 阅读全文
posted @ 2019-01-19 19:20 Paulliant 阅读(66) 评论(0) 推荐(0) 编辑
摘要:题意 https://loj.ac/problem/2527 思路 设 $f(k)$ 为强制选择 $k$ 个颜色出现 $s$ 种,其余任取的方案数。 则有 $$ f(k)={m\choose k}{n\choose sk}{(sk)!\over(s!)^k}(m k)^{n sk} $$ 不难看出, 阅读全文
posted @ 2019-01-15 16:00 Paulliant 阅读(86) 评论(0) 推荐(0) 编辑
摘要:题意 有 $n$ 个岛屿,第 $i$ 个岛屿上有一张 $a_i$ 的完全图。其中第 $i$ 张完全图的 $a_i$ 号节点和 $i+1$ 号岛屿的 $1$ 号节点有边相连(包括 $n$ 号岛屿和 $1$ 号岛屿)。求删去若干条边,使得图变成无环图的方案数。 思路 定义 $f_n$ 为 $n$ 个点的 阅读全文
posted @ 2019-01-15 15:43 Paulliant 阅读(184) 评论(0) 推荐(0) 编辑
摘要:题意 $n$ 局石头剪刀布,设每局的贡献为赢的次数与输的次数之 $\gcd$ ,求期望贡献乘以 $3^{2n}$ ,定义若 $xy=0$ 则,$\gcd(x,y)=x+y$ 思路 不难得出 $$ ans=3^n\sum_{i=0}^n\sum_{j=0}^{n i}{n\choose i}{n i\ 阅读全文
posted @ 2019-01-15 15:43 Paulliant 阅读(154) 评论(0) 推荐(0) 编辑
摘要:题意 给定 $n$ 个点,任意连边,每条边有 $m$ 种颜色可选,求带环连通图的方案数。 $1\leq n\leq 10000$ $1\leq m 1; CDQ(l,mid); / 处理[l,mid]的多项式和转移给[mid+1,r]的多项式 / _Polynomial::multiply(/ /) 阅读全文
posted @ 2019-01-15 15:42 Paulliant 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题意 $x_k=bc^{2k}+d$ $\displaystyle F(x)=\sum_{i=0}^{n 1}a_ix^i$ 给定 $\{a\},b,c,d,n$ ,求 $F(x_0),F(x_1),\cdots,F(x_{n 1})$ 思路 设 $ans_k=F(x_k)$ $$ ans_k=\s 阅读全文
posted @ 2019-01-15 15:41 Paulliant 阅读(286) 评论(0) 推荐(0) 编辑
摘要:题意 给定 $n$ 个数 $a_1,a_2,\cdots a_n$,对于每个 $K\in[1,n]$ ,求出 $n$ 个数的每个子集的前 $K$ 大数的和,输出每个值,对 $998244353$ 取模。 $1\leq n \leq 10^5$ 思路 设 $K$ 为 $k$ 时的答案为 $ans_k$ 阅读全文
posted @ 2019-01-15 15:37 Paulliant 阅读(111) 评论(0) 推荐(0) 编辑