每日 数据结构

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

怎么两天一道了。

P10169

给定 。计数区间 满足

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

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


开更!

250722

P5841

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

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

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

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

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

P5113

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

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

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

再补。

Q12012

找支配对。

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

扫描线。

P6109

矩形加;矩形最大值。

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

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

250723

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

预处理 维。

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

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

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