每日数据结构 。
241201
考虑一个节点 ,和 的叶子 合并,贡献是若干个连续段对 到 的答案为 。由于 内任选两点一定在 子树中的某个点被贡献过,所以可以当成 有 的贡献。对每个 维护子树内连续段,启发式合并。因为每个贡献区间都是两个连续段合并起来,所以只有 个长度 的区间和 个单点。
单点可以用 st 表维护区间最大值,对 的询问贡献。对于有贡献的区间和询问区间,分三类考虑。有贡献的区间左端点小于询问区间左端点,按 从小到大扫描线,贡献加在 上,查询 的答案。有贡献的区间右端点大于询问区间右端点同理。否则 ,按 从大到小扫描线,贡献加在 上,查询 的答案。
优化启发式合并,只要对每个 二分在 的子树内包含 的极长连通块,st 表求区间 dfn 最大最小的点, lca。
241203
令 ,枚举最大值位置 ,令 ,要求 。令 为最大的 ,要求 。维护 的最小值和最小值个数,维护 两侧的单调栈。合法的 的 ,需要减 的 数量为 的数量。
241204
求 的并的长度。关于 对称,两端无交,中间有交,二分。线段树维护区间个数,区间和,区间和的前缀和。
241205
分块,维护块内的最大前缀和。形如 ,建 的凸包,二分斜率 。
241206
每个线段树节点开 set 维护 行的白格对列答案的影响。删掉一个未被染黑的区间时,在被询问区间完全包含的线段树节点删掉 的标记,否则下传。线段树维护答案为左右儿子的较大值和当前节点的最小标记的 min。对每个 set 维护连续段,保证每次删的区间无交。
241208
分块,维护正负的最大最小值。块内建凸包,二分 。
241211
点分治 ,预处理 最早 到 ,要走边 最晚 从 出发。数满足 的不同颜色数量,扫描线。
241215
对 分解质因数,每个质数 维护 是 倍数的位置,一个个取出来修改,只有 次修改。类似 弹飞绵羊,分块,每个点维护第一次跳出块的位置。
开更。
250207
的矩阵, 次询问。
- 将一个正方形逆时针转 度;
- 矩阵加一个值。
。
神秘。
根号重构。对询问分大小为 的块,将矩阵划分为 个子矩阵并维护原来左上角现在的坐标和旋转的次数。每次询问遍历所有的块判断在不在操作范围内并打标记,重构时再放回去。复杂度 。
250208
的矩形, 次询问 ,每个点加 。
。
一坨屎。
每次枚举较短一边做矩阵加可以 ,当一维顶到两边的界时对另一维加等差数列。
矩阵不断扩大时差分的位置在对角线或边界上,维护斜线和边界位置差分数组变化值的差分。
250210
区间加,区间 popcount,单点查。
做完一次 P
之后只有 种本质不同数值。
线段树维护区间是否有 P
操作,P
之前加了多少,对于第一次 P
后等于 的数现在是什么。
250216
树,每个节点上有一颗二叉搜索树。对路径上的点的 BST 插入一个 ,单点查询在一个 BST 上查找 时经过的权值和。
离线。对于 ,贡献为比 两侧的 的前/后缀最小值位置上的 。
线段树合并,楼房重建线段树维护前/后缀最小值位置上的和。
250218
有向图。将一条边打开关闭;询问 是否可达。
。
时间分块,每 个询问一起做, 个关键点。把非关键边的拿出来缩边双,求出关键点使用非关键边两两的连通性。bitset 优化 bfs。
复杂度 ,感觉很错,乱冲。
250220
怎么两天一道了。
给定 。计数区间 满足 。
注意到 和 至少一个为 。计数 加 减去 。
的部分。求出 极小和极大 区间,即 的区间 的 值相等。再二分出 使得 ,和 使得 。对于 的 符合 部分的限制。扫描线求矩阵并。