随笔分类 -  线段树

摘要:"题目链接" 发现区间按左端点排序后右端点也是单调的,所以扫一遍就行了,用权值线段树维护第$k$大 阅读全文
posted @ 2019-11-11 11:54 yjk 阅读(160) 评论(0) 推荐(0)
摘要:"题目描述" 离散化,线段树维护区间修改,发现询问都是单点的$max$,不妨把标记留在点上,不用下传,查询时取个$max$就可以了 阅读全文
posted @ 2019-11-11 11:51 yjk 阅读(181) 评论(0) 推荐(0)
摘要:T1 $solution$ 求出第一个开始下降的位置,移动到连续的与它相同的数的最前面的一个数的位置,记录为$p$ $p$以前的位置的数与原数相同,$p$位置为原数 1,后面全部为9 cpp include include include include define int long long u 阅读全文
posted @ 2019-11-04 21:46 yjk 阅读(214) 评论(0) 推荐(0)
摘要:"题目链接" 用两条扫描线从左往右扫描,距离为W,右边的扫描线扫到就加上,左边的扫到就减去, 线段树上的一点$x$维护$(x,x+H)$的星星总价值,修改时直接修改$(x H,x)$就行了 坐标大,离散化 阅读全文
posted @ 2019-11-03 21:03 yjk 阅读(132) 评论(0) 推荐(0)
摘要:求$n$个矩形的面积并,可以用线段树维护一条垂直于$y$轴的直线上被矩形覆盖的长度有多少长,将直线从左往右扫一遍,遇到矩形左边界就+1,遇到右边界就 1,不为$0$的位置就表示没有覆盖 不为$0$的位置的多少似乎不好维护, 考虑这样一个性质: 如果一个线段树上的区间在扫过一个矩形的左边界被全部覆盖, 阅读全文
posted @ 2019-11-03 20:58 yjk 阅读(128) 评论(0) 推荐(0)
摘要:XOR的艺术 题目链接 用线段树维护sum, 修改时 tag[p]^=1; sum=r-l+1-sum; 详见代码 三倍经验: 开关 光开关 去掉build即可 阅读全文
posted @ 2018-07-24 15:30 yjk 阅读(151) 评论(0) 推荐(0)
摘要:树链剖分 树链剖分就是把一个树有顺序地分成几个链,记录每个点的顺序,存在数组中,就可以用线段树维护树上的一些操作 以下是几个模板题: 数的统计 《信息学奥赛一本通提高篇》上的模板是这样的: 模板 水题 阅读全文
posted @ 2018-06-30 20:17 yjk 阅读(217) 评论(0) 推荐(0)