07 2022 档案

摘要:洛谷传送门 思路 考虑按边权从小到大和从大到小排序,建两棵 Kruskal 重构树。根据 minmax 倍增到相应的祖先结点,问题就转化成了两棵子树交。记 a,b 分别为两棵树的 dfs 序,则问题为满足 $i \in [l_1,r_ 阅读全文
posted @ 2022-07-28 21:16 zltzlt 阅读(34) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 路径最值想到 Kruskal 重构树,则求最大权值就是求 LCA 的点权。 多个点的 LCA 就是 dfs 序最小和 dfs 序最大的点的 $\mathrm{ 阅读全文
posted @ 2022-07-28 21:08 zltzlt 阅读(29) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 考虑离线,按时间倒序进行操作,删边变成加边。 然而若按时间倒序进行操作,就不知道哪些点已经 pu=0 了。. 可以按加边的顺序建出 Kruskal 重构树。则可以倍增找到在 t 时刻连通的祖先,它的所有叶子子结点即为在 t 时刻 阅读全文
posted @ 2022-07-28 21:04 zltzlt 阅读(31) 评论(0) 推荐(0) 编辑
摘要:Kruskal 重构树 回忆 Kruskal 算法求最小生成树的过程,将所有边按边权排序,然后从小到大合并。若两个点不直接合并,而是新建一个虚点 z,连 zxzy,就形成了一棵 Kruskal 重构树 。 $\math 阅读全文
posted @ 2022-07-28 20:55 zltzlt 阅读(40) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 考虑将每条边的编号作为边权,然后建 Kruskal 重构树。 那么每个询问的答案即为 LCA(l,l+1,...,r1,r)。 有一个经典套路,就是多个点的 LCA 就是 dfs 阅读全文
posted @ 2022-07-28 20:55 zltzlt 阅读(30) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 令 1 为根,并设 du1u 的路径上经过的点的异或和,则 u,v 两点路径经过点的异或和可以转化成 dudvalca(u,v)。 因为题目没有限制,所以可以将点权修改为 阅读全文
posted @ 2022-07-27 21:11 zltzlt 阅读(99) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 POJ 传送门 一眼点分治。 当递归到结点 u 时,计算出子结点 v 的子树内,所有结点和 u 的距离。然后与之前的合并并计算答案即可。使用树状数组,时间复杂度 O(nlognlogk),空间复杂度 O(n+k)。 code /* p_b_p_b tx 阅读全文
posted @ 2022-07-26 20:20 zltzlt 阅读(40) 评论(0) 推荐(0) 编辑
摘要:点分治是一种处理树上路径相关问题的好方法。 先来一道题:洛谷 P3806 【模板】点分治1 暴力枚举显然是是 O(n2),考虑使用点分治。 对于任意两点的路径,显然只有两种: 经过根结点 root 不经过根结点 root 对于情况 1 的路径长度是很好算的,$\mathrm{dis 阅读全文
posted @ 2022-07-26 19:01 zltzlt 阅读(26) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 思路 考虑将图往左压正,就得到了一个直角三角形的图。 在这个图中,如果没有斜边,则任意时刻走的向下的边都要 向右的边。这一部分就是 [SCOI2010] 生成字符串 了。 现在有斜边,考虑枚举走斜边的次数,设 ui 为第 r 行第 c 列的点,走斜边的次数为 $ 阅读全文
posted @ 2022-07-21 21:00 zltzlt 阅读(62) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CodeForces 传送门 一道不错的博弈论。 思路 此题的关键性质在于:一方可以重复另一方上一次的操作从而使得局面不变。 因此有结论:先手必胜当且仅当先手第一步就取胜,后手必胜当且仅当先手无法在第一步就取胜且无论先手如何操作后手都能一步胜利。 可以这么理解。若先手第一步无法取胜,后手 阅读全文
posted @ 2022-07-21 19:53 zltzlt 阅读(29) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 看到询问次数是 O(logn) 级别的,考虑使用树剖的一些性质。 我们都知道一个点到根结点的链经过的轻边为 O(logn) 级别的。于是考虑如下的算法: 先通过一次询问得出 x 的深度,然后树剖。 一开始设 u1。沿着重链跳到和 $x 阅读全文
posted @ 2022-07-21 16:35 zltzlt 阅读(33) 评论(0) 推荐(0) 编辑
摘要:AtCoder 传送门 思路 对于一个奇数 x,能到达它的最大且比它小的数为 xf(x),它能到达的最小且比它大的数为 x+f(x)。因此奇数 x 对于区间 [xf(x)+1,x+f(x)1] 都是没有连边的。 考虑两个数 $x,y\ (x < y 阅读全文
posted @ 2022-07-21 16:28 zltzlt 阅读(112) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 考虑数列是一个排列怎么做。 套路地,设一个数组 bi 表示 i 在排列出现的位置,即 abi=i。则题中交换逆序对的位置就转化成了交换逆序对的值(因为若 i<jbi>bjabj>abi阅读全文
posted @ 2022-07-21 14:26 zltzlt 阅读(78) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 又是一道小清新构造题。 思路 显然若 n 为合数(除了 4,因为 4 可以构造出 [1,3,2,4])则无解,因为一定存在 x>1,y>1,xyxy0(modn),而 n 一定要放在排列最后一位使得前 阅读全文
posted @ 2022-07-21 10:33 zltzlt 阅读(23) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 萌萌交互题。 思路 考虑每次询问两个叶子的 LCA,若 LCA 为两个叶子之一,那么 LCA 必为根。 每次询问后需要加进来新的叶子。 若询问 $\left\lfloor\dfrac{n}{2}\right\ 阅读全文
posted @ 2022-07-21 09:14 zltzlt 阅读(23) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 AtCoder 传送门 思路 考虑正向进行操作并且维护当前棋子能到达的行区间 [up,down] 和列区间 [left,right]。则先手每次将区间往外扩展一格,而后手每次尽可能将区间往内缩小。当某一时刻先手执行完操作后区间的最左端或最右端不在棋盘上了,那么输出 NO。执行完所 阅读全文
posted @ 2022-07-21 08:01 zltzlt 阅读(25) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 思路 若不能往右走,则本题就是卡特兰数。 现在加上可以往右走的条件,可以在一开始都往右走的前提下任选 k 个右上,k 个右下,并且不能碰到 y=1。因此方案数为: $$\sum\limits_{k=1}^{\left\lfloor\frac{n}{2}\right\rf 阅读全文
posted @ 2022-07-20 21:26 zltzlt 阅读(31) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 SPOJ 传送门 比较经典的一道题。 思路 第一个怪物一定是 Digo 杀的,考虑第二个到最后一个怪物,如果忽略掉 Digo 杀的第一只怪物,那么每杀掉一只怪物后,Digo 的击杀数都不少于 Sharry 的击杀数。 假设现在在一个平面直角坐标系,位于点 (0,0),Digo 杀一个 阅读全文
posted @ 2022-07-20 16:43 zltzlt 阅读(48) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 思路 设 fi 为经过第 i 个结点的期望次数,那么炸弹在第 i 个结点爆炸的概率即为 fi×PQ。 有转移: $$f_u = [u=1] + \sum\limits_{(u,v) \in E} \dfrac{1 - \frac{P} 阅读全文
posted @ 2022-07-19 16:02 zltzlt 阅读(29) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 经典根号分治题。 思路 显然有两种暴力: 对于每个地区为 r1 的结点,计算它的子树内有多少个地区为 r2 的结点。 对于每个地区为 r2 的结点,计算它到祖先的链上有多少个地区为 r1 的结点。 设 cnti 为第 i 个地区的数量。若 $cnt_{r 阅读全文
posted @ 2022-07-19 14:11 zltzlt 阅读(52) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 LOJ 传送门 思路 显然可持久化 01 trie。 询问一,由于一个结点的子树可以映射到 dfs 序上一段连续的区间,因此可以对 dfn 区间建可持久化 01 trie,查询直接做就可以。 询问二,用树剖会多一个 log,很垃圾。考虑差 阅读全文
posted @ 2022-07-19 14:04 zltzlt 阅读(30) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 题意 给一棵树和每个结点消失的概率 pi,有 q 组询问,每组询问要求: 将 pu 修改为 x 查询森林的期望连通块数量 思路 题中给出的是每个结点消失的概率,那不妨先 pi1pipi 转化为每个结点出现的概率。 阅读全文
posted @ 2022-07-19 09:27 zltzlt 阅读(29) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-07-18 20:05 zltzlt 阅读(0) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 思路 考虑建出 AC 自动机之后 dp。对于每一个人分别计算它的胜率,设当前计算到第 i 个人的胜率,设 fu 表示当前在 AC 自动机上的 u 号结点获胜的概率,对 AC 自动机上每个结点 u 写出它的转移方程: 若 u 为第 i 个字符串的叶子结点,$f_u 阅读全文
posted @ 2022-07-18 16:17 zltzlt 阅读(60) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 一道线段树维护区间前缀最大值个数的好题。 思路 易得连接 (0,0),(i,Hi) 的线段斜率为 si=Hii。则题要求的就是满足 i[1,n],si>maxj=1i1sji 的个数。考 阅读全文
posted @ 2022-07-16 18:19 zltzlt 阅读(45) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 引理:n 台电脑全部手动打开的方案数为 2n1。 证明:设第一台打开的电脑是第 x 台。则 x+2 一定在 x+1 后打开,x+3 一定在 x+2 后打开,……,n 一定在 n1 后打开。同理 x2 一定在 $x-1 阅读全文
posted @ 2022-07-16 14:43 zltzlt 阅读(35) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 手玩几组数据可知: 若不回到开头删字符,则操作次数为 npl,其中 pl 表示 stLCP。 若需要回到开头删字符,则最优解一定是光标先从右往左移动一段,若有不同的字符则按一次 backspace;然后按 hom 阅读全文
posted @ 2022-07-16 11:16 zltzlt 阅读(69) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 思路 遇到这种有两个维度的问题,考虑先按其中一个维度排序。在本题中将所有木棍按照 Li 从大到小排序,则排序后一定是从左往右选。 排序后问题就变成了: 有长为 n 的数组 W1,W2,...,Wn,每次可选出该数组的一个子序列 a1,a2,..,ak 满足 阅读全文
posted @ 2022-07-15 21:16 zltzlt 阅读(47) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2022-07-15 16:41 zltzlt 阅读(1) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 Yet Another God Problem 思路 对于这种矩形覆盖的问题,一般考虑扫描线+线段树。 首先离散化坐标。扫描 x 轴,对 y 轴建线段树。离散化后设 y 轴有 tot 个端点,则有 tot1 个区间,在线段树上每个叶子节点维护的实际 阅读全文
posted @ 2022-07-14 16:41 zltzlt 阅读(33) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 边权为 1 的最短路问题,可使用 BFS 求解。当目前搜到点 u 时,瓶颈在于找出所有边 uv,若 v 没被访问过就入队。 下面的部分和 [JOISC2020] 治療計画 有点像。考虑先拆限制中的绝对值。 若 u<v ,则 $v - 阅读全文
posted @ 2022-07-14 09:19 zltzlt 阅读(62) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 考虑区间 dp。设 fi,j 为只考虑区间 [l,r] 的点的最小值。转移就考虑计算每条边的贡献,枚举根,则根到左子树的这条边的贡献即为左子树的点为 i,非左子树的点为 j 的所有 ci,j 的和。右子树同理。二维前缀和预处理一下即可做 阅读全文
posted @ 2022-07-13 21:12 zltzlt 阅读(110) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 显然如果确定了路径的两个端点 x,y,就可以树剖将树上 xy 的路径上的点权值 +1,再判断询问点是否在路径上。 于是钦定深度最大的点为其中一个端点 x,另一个端点 y 为询问点中不为 x 的祖先且深度最大的点。如果 y 不存在说 阅读全文
posted @ 2022-07-13 20:34 zltzlt 阅读(28) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 AtCoder 传送门 远古 ABC 的题。 题意 给定 N,K,求 i=1Nlcm(i,K)1N,K109。 思路 考虑推式子。 $$ans = \sum\limits_{i=1}^N \ 阅读全文
posted @ 2022-07-12 19:38 zltzlt 阅读(47) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 思路 由 gcd 的性质(gcd(a,b)=gcd(a+kb,b)b 为正整数)可知,1N! 中与 M! 互质的数的个数即为: ans=N!×ϕ(M!)M! 考虑计算 ϕ(M!) 阅读全文
posted @ 2022-07-12 11:48 zltzlt 阅读(24) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 AtCoder 传送门 学长讲的一道神仙题。 思路 由于 1018 非常大,所以可以考虑这样一个贪心:每次取目前能取的 x+y+z 最大的点。因此先将所有边定向,从小的编号连向大的。 设 fx,y,z 为是否选 (x,y,z),那么 $f_{x,y,z} = 阅读全文
posted @ 2022-07-11 22:45 zltzlt 阅读(73) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 还不错的一道思维 + 计数题。 思路 考虑一次操作后对 v 数组的影响:相当于将 v 数组左移一位,原本的 v1 被覆盖了,vn 补零,然后对于 i[1,n1]vimin(vi1,0)。同时还可以发现一个 阅读全文
posted @ 2022-07-11 15:51 zltzlt 阅读(40) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 显然线段树。每个节点存最左端的列的并查集和最右端的列的并查集,并且维护这个节点中连通块的数量。merge 时先将 res 的连通块数量设为两个子结点的连通块数量之和,然后合并左儿子最右端的列的并查集和右儿子最左端的列的并查集,如果合并成功则 $res \gets 阅读全文
posted @ 2022-07-03 16:13 zltzlt 阅读(36) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 LOJ 传送门 思路 对 S1,S2,...,Sn 建出 AC 自动机并建出 fail 树。对于每次新加入的 P,考虑计算它对答案的贡献。 考虑在 AC 自动机上匹配的过程。加入一个 P,设它在 AC 自动机上从根结点开始的链经过 $p_1,p_2 阅读全文
posted @ 2022-07-02 22:25 zltzlt 阅读(52) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 思路 **引理:**设 f(x)x+12x 中二进制表示恰好含有 k1 的数的个数,则对于任意 x (x1),都有 f(x)f(x+1)。 证明:f(x) 表示 x+12x 中二进制表 阅读全文
posted @ 2022-07-02 18:09 zltzlt 阅读(25) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 KMP 好题。 思路 合法的子区间其实就是原串的 border,考虑维护 border 的集合。每次加入一个字符,就保留原来合法的 border 并加入新的合法 border(如果 $s 阅读全文
posted @ 2022-07-02 12:42 zltzlt 阅读(33) 评论(0) 推荐(0) 编辑
摘要:洛谷传送门 CF 传送门 比 CF547E 略难的字符串好题。 思路 首先令 m=i=1n|si|。 设 ai 为第 i 个字符串在 AC 自动机上的终止结点。考虑在 AC 自动机上匹配的过程,xy 中出现的次数就相当于在 Trie 阅读全文
posted @ 2022-07-01 22:59 zltzlt 阅读(27) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示