S G T t r i c k SGTtrick SGTtrick
模板
01trie模板题
线段树维护i*a[i]
区间异或修改,维护区间mex
二进制位线段树区间并修改,维护区间或查询
单点修改维护根节点乘积
维护区间连续 ( 0 / 1 ) (0/1) (0/1)的长度
单点修改区间最大连续和
根据逆序对数还原排列
线段树(树状数组)求逆序对
单点插入区间查询
多标记下传线段树
双指针+线段树永久化标记
50 50 50多棵线段树动态开点
区间加等差数列,维护区间和
区间加 w ( i − q l + 1 ) 2 w(i−ql+1)^2 w(i−ql+1)2,维护区间和
维护区间方差与区间平均数
线段树维护区间gcd
维护区间动态带权中位数
主席树维护矩形加,矩形求和
主席树维护可持久化数组
主席树维护可持久化并查集
主席树优化数对
主席树维护值出现的最右区间
主席树
主席树维护区间出现次数超过一半的数
二进制分组+主席树处理动态二维矩形数点
线段树维护泰勒展开前若干项
线段树维护有向图点的入度最值+线段树上二分查找
线段树维护路径期望值
线段树+ s a m sam sam
李超线段树
线段树维护01排序
线段树优化算法好题
树套树模板
线段树+双指针
线段树维护差分数组
线段树+数学推导维护前缀和的前缀和
线段树优化建图
贪心+线段树优化
线段树+单调栈+扫描线
线段树优化dp
优化 d p dp dp
线段树分治+凸包
线段树分治+并查集
线段树分治+可持久化01trie
线段树分治+01背包
线段树合并
线段树合并模板
线段树合并维护子树信息
线段树合并维护动态size
线段树合并维护连通块点权乘积比较
线段树合并维护距离子树根节点不超过 k k k的所有点点权最值
线段树维护子树中颜色出现最大次数
单点修改,要求从区间中选出一个非空子数列并保证相邻元素在原数组中下标奇偶性不同,求数列总和最大值
给定数字字串求保证区间中只出现构成2017的字串且不构成2016的字串需要删除的数字的最小值
链分治求树上最远白点对
链分治求树上离某个点最近的白点
链分治处理相同颜色连通块节点数
链分治处理相同颜色连通块中点权最大值
链分治+ddp维护树上最小覆盖
链分治+ddp维护最大独立集
链分治+ddp维护最大连通子块和
维护根节点到某节点路径上第一个黑点位置
树剖维护 d d p ddp ddp
动态开点线段树+树剖
给一个二进制串,询问区间中满足重排之后转回十进制值为 3 3 3的倍数的子串数
线段树维护区间 l c m lcm lcm取模
权值线段树+树状数组
线段树维护单调不降的序列判定
权值线段树上二分维护贪心
线段树维护平方的循环节
线段树模拟网络流退流
区间加 区间乘 区间加变形 区间覆盖 维护区间最大最小,单点值
维护区间与,或,异或,询问区间和
区间插入线段,维护单点最值
单点插入线段,维护单点最值
维护区间取min查询区间最大与区间和
支持区间加,区间取min和max,维护区间和,区间最大值,区间最小值
维护区间加,区间覆盖,区间最大,区间历史最大
区间变成 m a x ( x i − a , 0 ) max(x_i−a,0) max(xi−a,0),区间加 区间覆盖 询问单点最值 询问单点历史最值
维护区间加,区间取最大值,维护区间最小值,历史区间最小值
维护区间取两种最值,区间加,求区间两种历史最值,区间最小值
维护区间覆盖成非负数,区间变成 m a x ( x i + a , 0 ) max(xi+a,0) max(xi+a,0),询问区间中 0 0 0的个数
支持每次给出 x x x把 x x x~ n n n中小于 a x a_x ax的扯出来排序,维护全局逆序对数
区间开根区间求和
维护区间加,区间开根,区间求和
区间修改成自己的约数个数,区间求和
01trie+整体标记
给出一个排列 b b b,有一个初始值都为 0 0 0的数组 a a a,维护区间加 1 1 1,区间统计区间 ∑ ( a i / b i ) \sum (a_i/b_i) ∑(ai/bi)
维护区间取模,单点修改,区间求和
区间与或维护最大值
区间取 p h i phi phi区间求和
区间取模维护区间和+打表找规律
维护线段树区间覆盖,区间加,区间和
换根树剖
换根树剖
换根树剖
树链剖分+处理路径补集+可删堆
树剖区间取负,单点修改维护最大最小总和
支持树上路径覆盖,单点覆盖,路径加,求路径最大
树剖维护原图删去一条边之后的mst
树剖维护有向最短路
树剖+动态开点代替差分
次小生成树+树剖
树剖维护lca深度和
树剖维护路径前缀最小值与后缀最大值差最大值
长链剖分优化dp
长链剖分优化dp
长链剖分优化dp
长链剖分优化dp
长链剖分求k级祖先
长链剖分+贪心求树上k取方格数
01分数规划+长链剖分+线段树