来谈谈自己对延迟标记(lazy标记)的理解吧、 lazy标记的主要作用是尽可能的降低时间复杂度、 这样说吧、 如果你不用lazy标记,那么你对于一个区间更新的话是要对其所有的子区间都更新一次,但如果用lazy标记的话、 就只需要更新这一个区间然后加一个标记,那么如果要访问这个区间的子区间,因为有la ...
分类:
其他好文 时间:
2016-03-29 23:43:15
阅读次数:
230
欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院 Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20
分类:
其他好文 时间:
2016-03-15 12:16:16
阅读次数:
191
開始就直接用延迟标记搞了下。最后发现内存肯定会爆了。数据太大了。 问了瓜神,原来应该用离散化来做这题,详细见凝视 #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <climits>
分类:
其他好文 时间:
2016-02-24 15:35:26
阅读次数:
326
Just a Hook 题意:给定一个长度为N(1<=N<=100,000)初始为1的序列;之后有Q次区间修改(0<=Q<=100,000),即将区间的值全部改成v(1<= v <= 3);问最后所有值的和为多少? 线段树区间:先要对线段树的rt与l,r之间的关系清楚,才能很容易的编写出延迟标记的线
分类:
其他好文 时间:
2016-02-16 18:44:04
阅读次数:
176
主席树区间更新,延迟标记。 1 /* 4348 */ 2 #include <iostream> 3 #include <sstream> 4 #include <string> 5 #include <map> 6 #include <queue> 7 #include <set> 8 #incl
分类:
其他好文 时间:
2016-02-13 18:21:09
阅读次数:
223
【题意】 一段区间初始均为可行。有两个操作: 1→找出长度为w的一段可行区间,如果存在则返回这个可行区间最靠左的情况,并将该区间设为不可行; 2→将区间[a,b]设为可行区间。 【思路】 经典的线段树合并,代码依旧用的是神犇的线段树模板。详见注释。 【错误点】 延迟标记的时候,忘记把cover清为-
分类:
其他好文 时间:
2016-01-31 13:12:08
阅读次数:
205
这就是个简单线段树+延迟标记。因为对bool使用了~而不是!,wa了一下午找不到原因。 1 /* 3275 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include ...
分类:
其他好文 时间:
2015-12-27 19:12:03
阅读次数:
185
题意:给了你一些区间,x,y,第三个参数w是效率,代表这段时间他的单位时间效率,效率总 和就是 (y-x)*w,然后有的时间段会被重复啊,比如前面给了1,4,1,后面又给了2,4,3他们为了是的时间段1,4的效率总和最大肯定是选择 2,4区间的效率值选择3,意思就是后面出现更好的情况就覆盖前面的,问...
分类:
其他好文 时间:
2015-11-01 12:36:46
阅读次数:
170
hdu 1698 1 // hdu 1698 区间值更新 延迟标记 2 3 #include 4 #include 5 #include 6 using namespace std; 7 #define maxn 200000 8 9 int val[maxn+10];10 struct...
分类:
其他好文 时间:
2015-09-26 21:13:20
阅读次数:
249
题意:给一个由0,1组成的序列,有两种操作,一种是翻转给定区间的数(0->1,1->0),另一种是查询给定区间内由1组成的子串的最大长度。重点在区间合并和延迟标记。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x3fffffff
usi...
分类:
其他好文 时间:
2015-09-01 10:46:35
阅读次数:
184