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