每日 数据结构 。

241201

P11364。241130noip2024-you-ji。

考虑一个节点 ,和 的叶子 合并,贡献是若干个连续段对 到 的答案为 。由于 内任选两点一定在 子树中的某个点被贡献过,所以可以当成 有 的贡献。对每个 维护子树内连续段,启发式合并。因为每个贡献区间都是两个连续段合并起来,所以只有 个长度 的区间和 个单点。

单点可以用 st 表维护区间最大值,对 的询问贡献。对于有贡献的区间和询问区间,分三类考虑。有贡献的区间左端点小于询问区间左端点,按 从小到大扫描线,贡献加在 上,查询 的答案。有贡献的区间右端点大于询问区间右端点同理。否则 ,按 从大到小扫描线,贡献加在 上,查询 的答案。

优化启发式合并,只要对每个 二分在 的子树内包含 的极长连通块,st 表求区间 dfn 最大最小的点, lca。

241203

CF2041J

令 ,枚举最大值位置 ,令 ,要求 。令 为最大的 ,要求 。维护 的最小值和最小值个数,维护 两侧的单调栈。合法的 的 ,需要减 的 数量为 的数量。

241204

CF1500E

求 的并的长度。关于 对称,两端无交,中间有交,二分。线段树维护区间个数,区间和,区间和的前缀和。

241205

P7028

分块,维护块内的最大前缀和。形如 ,建 的凸包,二分斜率 。

241206

Q967

每个线段树节点开 set 维护 行的白格对列答案的影响。删掉一个未被染黑的区间时,在被询问区间完全包含的线段树节点删掉 的标记,否则下传。线段树维护答案为左右儿子的较大值和当前节点的最小标记的 min。对每个 set 维护连续段,保证每次删的区间无交。

241208

CF1178G

分块,维护正负的最大最小值。块内建凸包,二分 。

241211

Q2064

点分治 ,预处理 最早 到 ,要走边 最晚 从 出发。数满足 的不同颜色数量,扫描线。

241215

thupc2025 初赛 H。

对 分解质因数,每个质数 维护 是 倍数的位置,一个个取出来修改,只有 次修改。类似 弹飞绵羊,分块,每个点维护第一次跳出块的位置。


开更。

250207

P10061

的矩阵, 次询问。

  • 将一个正方形逆时针转 度;
  • 矩阵加一个值。

。

神秘。

根号重构。对询问分大小为 的块,将矩阵划分为 个子矩阵并维护原来左上角现在的坐标和旋转的次数。每次询问遍历所有的块判断在不在操作范围内并打标记,重构时再放回去。复杂度 。

250208

P4800

的矩形, 次询问 ,每个点加 。

。

一坨屎。

每次枚举较短一边做矩阵加可以 ,当一维顶到两边的界时对另一维加等差数列。

矩阵不断扩大时差分的位置在对角线或边界上,维护斜线和边界位置差分数组变化值的差分。

250210

P8969

区间加,区间 popcount,单点查。

做完一次 P 之后只有 种本质不同数值。

线段树维护区间是否有 P 操作,P 之前加了多少,对于第一次 P 后等于 的数现在是什么。

250216

pjudge PR #15 B

树,每个节点上有一颗二叉搜索树。对路径上的点的 BST 插入一个 ,单点查询在一个 BST 上查找 时经过的权值和。

离线。对于 ,贡献为比 两侧的 的前/后缀最小值位置上的 。

线段树合并,楼房重建线段树维护前/后缀最小值位置上的和。

250218

P11369

有向图。将一条边打开关闭;询问 是否可达。

。

时间分块,每 个询问一起做, 个关键点。把非关键边的拿出来缩边双,求出关键点使用非关键边两两的连通性。bitset 优化 bfs。

复杂度 ,感觉很错,乱冲。

250220

怎么两天一道了。

P10169

给定 。计数区间 满足 。

注意到 和 至少一个为 。计数 加 减去 。

的部分。求出 极小和极大 区间,即 的区间 的 值相等。再二分出 使得 ,和 使得 。对于 的 符合 部分的限制。扫描线求矩阵并。


开更!

250722

P5841

个串。要求重排,最大化 。在此基础上,依次尽量满足要求令 之后为 。

每个串后加额外字符使得不存在包含关系。最大化相当于字典树上的一个 dfs 序。

之后要求 到 路径上一些点是其父亲最前/最后的儿子,或是其父亲的儿子顺序相邻的。

链表维护每个元素的前驱后继,每条链的链顶链尾和长度,每个父亲的最先最后儿子。合并的时候可以 合并两个链表的所有信息。

缩掉只有一个儿子的点,可以保证树深 。

P5113

区间覆盖;区间求和;撤销覆盖。

分块。维护栈描述推平值和时间戳。

按每个点最后被覆盖的时间戳排序,和整块的时间戳比较。

再补。

Q12012

找支配对。

按 分治,要求红蓝点必有一个是最大值。

扫描线。

P6109

矩形加;矩形最大值。

。

对第一维线段树分治,将询问挂在跨过中点的区间,修改拆到 个区间。

扫描线处理前后缀,维护 区间历史最大值。需要处理回滚。

250723

数 边界字符全相同 的矩形。

。

预处理 。 维。

对矩形分治。左右两边独立。 维。

枚举 行和 行,相当于数 的数量。

单次复杂度 。令 ,即对长的一边分治,复杂度 。


一年了。

noip 2025 T4。