扫描线
摘要:##线段树维护扫描线的长度--求矩形面积 https://www.luogu.com.cn/record/83280051 ###注意的就是(1)线段树一个节点代表单位线段,tot不加进去(2)懒度标记优化,用sum记录整条线段的覆盖次数,有就让len=sum_len,没有就用儿子的(3)lenth
阅读全文
posted @
2022-08-10 22:11
HZOI-曹蓉
阅读(26)
推荐(0) 编辑
ST表
摘要:##解决区间可以重复贡献的问题,比如,区间最小值,区间最大值,区间gcd,多次计算不影响结果,但是区间求和就不行 ###eg:给你一个序列Hi,和m次询问(si,ti),要求你从(si,Hsi)-->(ti,Hti)只能向9个方向走(3*3),并且要求到达i位置纵位置不能<Hi,相当于是跨山峰 ##
阅读全文
posted @
2022-08-08 20:42
HZOI-曹蓉
阅读(24)
推荐(0) 编辑
线段树维护单调栈
摘要:在普通单调栈的基础上支持修改操作,动态维护节点的单调信息,重点是必须具有可合并性 陶陶摘苹果: 每次向序列最后里加一个数,问每次加入的单调递增的栈的长度(从1开始,1必须选) ####就是说eps精度误差不要乱用,如果判等要用至少1e-14,搞个1e-6会WA50% #include<iostrea
阅读全文
posted @
2022-08-07 11:45
HZOI-曹蓉
阅读(96)
推荐(0) 编辑
主席树(可持久化线段树)
摘要:##可持久化线段树,可以有3个维护属性(对问题的转化):P1:树的权值(下标)P2:树的每一个历史状态(前缀和思想)P3:树的维护的值(sum,max等等) ##区间内给定范围的值
阅读全文
posted @
2022-08-03 21:30
HZOI-曹蓉
阅读(17)
推荐(0) 编辑
平衡树基础
摘要:treap可旋转 搜索,插入和删除操作的期望时间复杂度为Olog(n) 这是一道模板题。 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 数; 删除 数(若有多个相同的数,因只删除一个); 查询 数的排名(若有多个相同的数,因输出最小的排名); 查询排名为 的数;
阅读全文
posted @
2022-06-04 18:38
HZOI-曹蓉
阅读(62)
推荐(0) 编辑
分块莫队
摘要:#分块 ##分块分的形式灵活,每一个块里可以是很多东西 ###eg:https://www.luogu.com.cn/problem/CF455D ####需要灵活维护位置的移动,用双端队列就可以搞定。但是细节比较多,【1】同一块和多块的查询/修改是要分开讨论【2】注意及时pop掉元素 点击查看代码
阅读全文
posted @
2022-04-14 10:32
HZOI-曹蓉
阅读(16)
推荐(0) 编辑
线段树合并,权值线段树
摘要:#include<iostream> #include<cstring> #include<cmath> #include<cstdio> #include<cstdlib> #include<ctime> #include<algorithm> #include<iomanip> #include
阅读全文
posted @
2022-04-04 15:12
HZOI-曹蓉
阅读(19)
推荐(0) 编辑
树状数组用法
摘要:1.结合kmp,维护顺序对和逆序对 (字符串) const int N=10000+20,M=500000+50;int txt[M],mod[M],ans[M],tot,t[N],equ[N],les[N],nxt[M];int lt,lm,s;inline int lowbit(int x){
阅读全文
posted @
2022-03-12 14:23
HZOI-曹蓉
阅读(21)
推荐(0) 编辑