每日数据结构

241201

P11364noip2024 T4

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

单点可以用 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

怎么两天一道了。

给定 。计数区间 满足

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

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