摘要: 一、简述 叫简述是因为不知道该叫啥。 整体二分是一种基于值域的分治算法,一般面对多次可二分的询问时就可以整体二分。有时带修改的问题也可以整体二分,但显然它难以强制在线。 整体二分的精髓在于对于一堆问题只 check 一次,从而节省相当多的时间。 二、例题 1.Luogu P3834 【模板】可持久化 阅读全文
posted @ 2025-06-22 17:24 zhangxy__hp 阅读(10) 评论(0) 推荐(0)
摘要: A. 皮胚 (match) 可行性 dp。设 \(f_{i,j}\) 表示 \(s\) 的第 \(i\) 位能否匹配到 \(t\) 的第 \(j\) 位。分讨转移即可。 Code #include<bits/stdc++.h> #define ll long long #define il inli 阅读全文
posted @ 2025-06-01 19:17 zhangxy__hp 阅读(63) 评论(23) 推荐(1)
摘要: 虚树用来处理一些树上的多次询问,对于每个询问,只考虑那些和询问有关的点,将无关的点都缩成边或直接剪掉。对于 \(Q\) 个询问,如果每次询问涉及的点数为 \(k_i\),那么总的时间复杂度就是 \((O\sum k_i)\) 的。 一、建树 在建树过程中,我们维护一个栈 \(stk\),表示当前在树 阅读全文
posted @ 2025-05-25 17:26 zhangxy__hp 阅读(43) 评论(0) 推荐(1)
摘要: 教练并没有更改比赛的名字,导致有两场比赛都叫“2025CSP-S模拟赛7” 阅读全文
posted @ 2025-05-18 14:33 zhangxy__hp 阅读(36) 评论(0) 推荐(0)
摘要: 天照知波 Made by Zxy and Zsk 阅读全文
posted @ 2025-05-05 12:49 zhangxy__hp 阅读(148) 评论(21) 推荐(5)
摘要: wylwyl 阅读全文
posted @ 2025-05-04 20:16 zhangxy__hp 阅读(41) 评论(8) 推荐(0)
摘要: A. Lesson5! 首先预处理出以每个点为起点和终点的最长路 \(g_u\) 和 \(f_u\)。然后按照拓扑序遍历每个点,删掉与这个点相关的边后更新答案,再加上相关的边(要将所有从这个点连出的边都加上,方便后面删边)。需要可删堆。注意 \(n=1\) 的情况,维护的边集中将没有元素,所以要特判 阅读全文
posted @ 2025-05-04 16:05 zhangxy__hp 阅读(51) 评论(0) 推荐(0)
摘要: 一、简介 折半搜索,即对于那些数据范围较小却又不能直接暴搜的题目,采取分两半暴搜后再想办法合并两部分的答案的办法。一般的方式是二分或者状压、map。 二、例题 1.世界冰球锦标赛 对前一半和后一半分别进行暴搜,将前半部分的答案存起来并排序,对于每个后面的答案在这个序列中二分即可。时间复杂度 \(O( 阅读全文
posted @ 2025-05-03 16:13 zhangxy__hp 阅读(17) 评论(0) 推荐(0)
摘要: 一、定义 cdq 分治是一种离线分治算法,一般有三种用途: 处理点对之间的问题 优化 1D/1D 动态规划 将动态问题转为静态问题 对于分治区间 \([l,r]\),确定一个中点 \(mid\),对于左右区间分别递归分治,然后再处理左右区间之间的贡献。啊显然归并排序就是 cdq 分治。 二、例题 1 阅读全文
posted @ 2025-04-19 16:14 zhangxy__hp 阅读(147) 评论(0) 推荐(1)
摘要: A. 十年之约 发现 \(f(n)\) 很小,考虑计算每个值 \(x\) 是多少个数的 \(f\) 值。显然要求 \(f(i)=x\),必定满足 \(\operatorname{lcm}[1,x-1]\mid i\land\operatorname{lcm}[1,x]\nmid i\)。因此贡献就是 阅读全文
posted @ 2025-04-05 11:55 zhangxy__hp 阅读(34) 评论(0) 推荐(0)