![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树/树状数组
文章平均质量分 80
cqsh3vj2
这个作者很懒,什么都没留下…
展开
-
hdu 3397 线段树成段更新
题目不难但是很复杂,写的线段树比较繁琐。 线段树的成段更新要使用标记。首先三种操作对应三种标记:0表示没有需要处理的延迟操作,1表示需要全部赋值成1,-1表示需要全部赋值成0,2表示全部取反。在更新2时要注意一下,如果之前是1,变成-1;之前是-1变成1;之前是2变成0(wa了好久都是忘记考虑这种情况);之前是0变成2; 对于置换这个操作,我在树的节点中存了l0,r0,,m0 自己犯了不少错原创 2014-02-21 08:49:55 · 458 阅读 · 0 评论 -
hdu 4578 线段树模板
lazy不为-1表示统一段为一个值 #include #include #include #include #include #include #include #include #include using namespace std; #define ll __int64 #define inf 0x3f3f3f3f #define maxNode 100010 #define mod 10原创 2015-02-25 11:19:41 · 396 阅读 · 0 评论 -
hdu 3681 Prison Break 扫描线set
set甚屌只能ORZ#include #include #include #include #include #include #include using namespace std; const int maxn = 51111; const double eps = 1e-8; inline int dcmp(double x) {return (x > eps) + (x < -eps);转载 2014-07-19 08:39:59 · 405 阅读 · 0 评论 -
hdu 4007 Dave 求矩形圈点最大值
对于每个点,扩成一个矩形,变成原创 2014-07-17 08:37:46 · 541 阅读 · 0 评论 -
poj 1177 矩形并的周长
可以扫一遍,同时求长和宽的增加段;也可以原创 2014-07-17 08:30:30 · 406 阅读 · 0 评论 -
poj 1151 Atlantis 纯矩形面积并
以端点建树,所以对于l,r 它的原创 2014-07-16 11:19:34 · 444 阅读 · 0 评论 -
hdu 1255 覆盖的面积
与poj1151略有不同 由于是大于等于2 的有效 所以应该更新到点原创 2014-07-16 11:38:25 · 283 阅读 · 0 评论 -
2014编程之美 初赛第一场 树 (非暴力)
比赛时一直顺着线段树的思想在想如何延迟操作。。。无果只好原创 2014-04-19 19:15:35 · 799 阅读 · 0 评论 -
fzu2105 线段树分位成段更新
由于数字很小,只有4位有效,所以维护4棵线段树,这样就可以叠加处理各个操作 #include #include #include #include int tree[4][6000005]; int a[1000005]; int b[4][1000005]; int vis[4][6000005]; int n,m; void build(int left,int right,int root原创 2014-02-21 08:54:16 · 539 阅读 · 0 评论 -
bzoj 1798 段乘段加线段树 双懒标记
要求的值时刻保持正确 懒标记为子节点所需的操作 http://www.lydsy.com/JudgeOnline/problem.php?id=1798 #include #include #include #include #include #include #include #include #include using namespace std; #define ll long原创 2015-02-25 16:40:12 · 437 阅读 · 0 评论