随笔分类 -  线段树

摘要:1. 求区间最大子段和: -6 3 5 -1 2 -2,这个数组最大子段和是3 5 -1 2。 操作类型:1e5次查询区间最大子段和。 方法: 每段区间维护4个值,区间最大子段和,左端点为l的区间最大子段和,右端点为r的区间最大子段和, 区间sum和。 pushup: A. 区间最大和 = max 阅读全文
posted @ 2020-03-21 10:54 AlexPanda 阅读(288) 评论(0) 推荐(1)
摘要:这里找到相应的分类的博客(DIY完了博客,但设置分类不会啊。逃~) 阅读全文
posted @ 2020-03-19 16:38 AlexPanda 阅读(246) 评论(0) 推荐(0)
摘要:题意:在树上操作,每次将两点路径值全变负和单点修改。每次求两点间路径的最大值。 思路: 边权转点权的话,每次把一条边的儿子点作为该边的权值。想起来挺好想,很容易出问题。 查询修改的话,要将多算的那条lca去掉就可以了。剩下的就是板子。 总结: 去掉lca,只需要判断top[x]==top[y]时,x 阅读全文
posted @ 2019-08-22 19:09 AlexPanda 阅读(110) 评论(0) 推荐(0)
摘要:题意:区间修改树上两点间的颜色种类,区间查询树上两点间的线段数。 思路:树刨+线段树,区间合并是第一次写。思路为线段树维护左端点和右端点的颜色,合并时相同就–。具体实现不太好写。 代码: #include <bits/stdc++.h> using namespace std; #define ll 阅读全文
posted @ 2019-08-21 22:24 AlexPanda 阅读(120) 评论(0) 推荐(0)