随笔分类 -  做题记录

摘要:洛谷传送门 思路 若不能往右走,则本题就是卡特兰数。 现在加上可以往右走的条件,可以在一开始都往右走的前提下任选 $k$ 个右上,$k$ 个右下,并且不能碰到 $y = -1$。因此方案数为: $$\sum\limits_{k=1}^{\left\lfloor\frac{n}{2}\right\rf 阅读全文
posted @ 2022-07-20 21:26 zltzlt 阅读(48) 评论(0) 推荐(0)
摘要:洛谷传送门 SPOJ 传送门 比较经典的一道题。 思路 第一个怪物一定是 Digo 杀的,考虑第二个到最后一个怪物,如果忽略掉 Digo 杀的第一只怪物,那么每杀掉一只怪物后,Digo 的击杀数都不少于 Sharry 的击杀数。 假设现在在一个平面直角坐标系,位于点 $(0,0)$,Digo 杀一个 阅读全文
posted @ 2022-07-20 16:43 zltzlt 阅读(67) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 设 $f_i$ 为经过第 $i$ 个结点的期望次数,那么炸弹在第 $i$ 个结点爆炸的概率即为 $f_i \times \dfrac{P}{Q}$。 有转移: $$f_u = [u=1] + \sum\limits_{(u,v) \in E} \dfrac{1 - \frac{P} 阅读全文
posted @ 2022-07-19 16:02 zltzlt 阅读(44) 评论(0) 推荐(0)
摘要:洛谷传送门 经典根号分治题。 思路 显然有两种暴力: 对于每个地区为 $r_1$ 的结点,计算它的子树内有多少个地区为 $r_2$ 的结点。 对于每个地区为 $r_2$ 的结点,计算它到祖先的链上有多少个地区为 $r_1$ 的结点。 设 $cnt_i$ 为第 $i$ 个地区的数量。若 $cnt_{r 阅读全文
posted @ 2022-07-19 14:11 zltzlt 阅读(65) 评论(0) 推荐(0)
摘要:洛谷传送门 LOJ 传送门 思路 显然可持久化 01 trie。 询问一,由于一个结点的子树可以映射到 $\mathrm{dfs}$ 序上一段连续的区间,因此可以对 $\mathrm{dfn}$ 区间建可持久化 01 trie,查询直接做就可以。 询问二,用树剖会多一个 $\log$,很垃圾。考虑差 阅读全文
posted @ 2022-07-19 14:04 zltzlt 阅读(40) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 题意 给一棵树和每个结点消失的概率 $p_i$,有 $q$ 组询问,每组询问要求: 将 $p_u$ 修改为 $x$ 查询森林的期望连通块数量 思路 题中给出的是每个结点消失的概率,那不妨先 $p_i \gets 1 - p_i$ 将 $p_i$ 转化为每个结点出现的概率。 阅读全文
posted @ 2022-07-19 09:27 zltzlt 阅读(39) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 考虑建出 AC 自动机之后 dp。对于每一个人分别计算它的胜率,设当前计算到第 $i$ 个人的胜率,设 $f_u$ 表示当前在 AC 自动机上的 $u$ 号结点获胜的概率,对 AC 自动机上每个结点 $u$ 写出它的转移方程: 若 $u$ 为第 $i$ 个字符串的叶子结点,$f_u 阅读全文
posted @ 2022-07-18 16:17 zltzlt 阅读(84) 评论(0) 推荐(0)
摘要:洛谷传送门 一道线段树维护区间前缀最大值个数的好题。 思路 易得连接 $(0,0),(i,H_i)$ 的线段斜率为 $s_i = \frac{H_i}{i}$。则题要求的就是满足 $i \in [1,n], s_i > \max\limits_{j=1}^{i-1} s_j$ 的 $i$ 的个数。考 阅读全文
posted @ 2022-07-16 18:19 zltzlt 阅读(60) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 引理:$n$ 台电脑全部手动打开的方案数为 $2^{n-1}$。 证明:设第一台打开的电脑是第 $x$ 台。则 $x+2$ 一定在 $x+1$ 后打开,$x+3$ 一定在 $x+2$ 后打开,……,$n$ 一定在 $n-1$ 后打开。同理 $x-2$ 一定在 $x-1 阅读全文
posted @ 2022-07-16 14:43 zltzlt 阅读(54) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 手玩几组数据可知: 若不回到开头删字符,则操作次数为 $n - pl$,其中 $pl$ 表示 $s$ 和 $t$ 的 $\mathrm{LCP}$。 若需要回到开头删字符,则最优解一定是光标先从右往左移动一段,若有不同的字符则按一次 backspace;然后按 hom 阅读全文
posted @ 2022-07-16 11:16 zltzlt 阅读(82) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 遇到这种有两个维度的问题,考虑先按其中一个维度排序。在本题中将所有木棍按照 $L_i$ 从大到小排序,则排序后一定是从左往右选。 排序后问题就变成了: 有长为 $n$ 的数组 $W_1,W_2,...,W_n$,每次可选出该数组的一个子序列 $a_1,a_2,..,a_k$ 满足 阅读全文
posted @ 2022-07-15 21:16 zltzlt 阅读(58) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 Yet Another God Problem 思路 对于这种矩形覆盖的问题,一般考虑扫描线+线段树。 首先离散化坐标。扫描 $x$ 轴,对 $y$ 轴建线段树。离散化后设 $y$ 轴有 $tot$ 个端点,则有 $tot - 1$ 个区间,在线段树上每个叶子节点维护的实际 阅读全文
posted @ 2022-07-14 16:41 zltzlt 阅读(39) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 边权为 $1$ 的最短路问题,可使用 BFS 求解。当目前搜到点 $u$ 时,瓶颈在于找出所有边 $u \to v$,若 $v$ 没被访问过就入队。 下面的部分和 [JOISC2020] 治療計画 有点像。考虑先拆限制中的绝对值。 若 $u < v$ ,则 $v - 阅读全文
posted @ 2022-07-14 09:19 zltzlt 阅读(77) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 考虑区间 dp。设 $f_{i,j}$ 为只考虑区间 $[l,r]$ 的点的最小值。转移就考虑计算每条边的贡献,枚举根,则根到左子树的这条边的贡献即为左子树的点为 $i$,非左子树的点为 $j$ 的所有 $c_{i,j}$ 的和。右子树同理。二维前缀和预处理一下即可做 阅读全文
posted @ 2022-07-13 21:12 zltzlt 阅读(121) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 显然如果确定了路径的两个端点 $x,y$,就可以树剖将树上 $x$ 到 $y$ 的路径上的点权值 $+1$,再判断询问点是否在路径上。 于是钦定深度最大的点为其中一个端点 $x$,另一个端点 $y$ 为询问点中不为 $x$ 的祖先且深度最大的点。如果 $y$ 不存在说 阅读全文
posted @ 2022-07-13 20:34 zltzlt 阅读(36) 评论(0) 推荐(0)
摘要:洛谷传送门 AtCoder 传送门 远古 ABC 的题。 题意 给定 $N,K$,求 $\sum\limits_{i=1}^N \operatorname{lcm}(i,K)$,$1 \le N,K \le 10^9$。 思路 考虑推式子。 $$ans = \sum\limits_{i=1}^N \ 阅读全文
posted @ 2022-07-12 19:38 zltzlt 阅读(70) 评论(0) 推荐(0)
摘要:洛谷传送门 思路 由 $\gcd$ 的性质($\gcd(a,b) = \gcd(a + kb,b)$,$b$ 为正整数)可知,$1 \sim N!$ 中与 $M!$ 互质的数的个数即为: $$ans = \dfrac{N! \times \phi(M!)}{M!}$$ 考虑计算 $\phi(M!)$ 阅读全文
posted @ 2022-07-12 11:48 zltzlt 阅读(32) 评论(0) 推荐(0)
摘要:洛谷传送门 AtCoder 传送门 学长讲的一道神仙题。 思路 由于 $10^{18}$ 非常大,所以可以考虑这样一个贪心:每次取目前能取的 $x+y+z$ 最大的点。因此先将所有边定向,从小的编号连向大的。 设 $f_{x,y,z}$ 为是否选 $(x,y,z)$,那么 $f_{x,y,z} = 阅读全文
posted @ 2022-07-11 22:45 zltzlt 阅读(93) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 还不错的一道思维 + 计数题。 思路 考虑一次操作后对 $v$ 数组的影响:相当于将 $v$ 数组左移一位,原本的 $v_1$ 被覆盖了,$v_n$ 补零,然后对于 $i \in [1,n-1]$,$v_i \gets \min(v_i - 1, 0)$。同时还可以发现一个 阅读全文
posted @ 2022-07-11 15:51 zltzlt 阅读(56) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 思路 显然线段树。每个节点存最左端的列的并查集和最右端的列的并查集,并且维护这个节点中连通块的数量。merge 时先将 $res$ 的连通块数量设为两个子结点的连通块数量之和,然后合并左儿子最右端的列的并查集和右儿子最左端的列的并查集,如果合并成功则 $res \gets 阅读全文
posted @ 2022-07-03 16:13 zltzlt 阅读(46) 评论(0) 推荐(0)