bzoj1513
二维线段树
听说二维线段树不能下传标记?
就是裸的二维线段树,由于每次高度只能增加,所以我们就可以标记永久化
每个线段树里有两个数组,mx和mark,每次修改路径上所有mx都要修改,mark是区间的精确覆盖修改
每次查询把路径上所有mark取max,然后和精确覆盖区间mx取max
为什么这样做呢?我们能不能只用一个数组?当然不行,如果我们只用mark,那么假设我们更新区间[1,4],然后查询区间[1,5],那么答案明显不对,如果我们只用mx,那么我们更新[1,1],查询[2,2],那么我们的答案被[1,1]更新了,也是不对。
#include<bits/stdc++.h>
using namespace std;
const int N = ;
int n, m, t;
struct Segment_Tree_X {
int mx[N], mark[N];
void update(int l, int r, int x, int a, int b, int tmp)
{
if(l > b || r < a) return;
mx[x] = max(mx[x], tmp);
if(l >= a && r <= b)
{
mark[x] = max(mark[x], tmp);
return;
}
int mid = (l + r) >> ;
update(l, mid, x << , a, b, tmp);
update(mid + , r, x << | , a, b, tmp);
}
int query(int l, int r, int x, int a, int b)
{
if(l > b || r < a) return ;
if(l >= a && r <= b) return mx[x];
int mid = (l + r) >> ;
return max(mark[x], max(query(l, mid, x << , a, b), query(mid + , r, x << | , a, b)));
}
};
struct Segment_Tree_Y {
Segment_Tree_X mx[N], mark[N];
void update(int l, int r, int x, int a, int b, int y_l, int y_r, int tmp)
{
if(l > b || r < a) return;
mx[x].update(, m, , y_l, y_r, tmp);
if(l >= a && r <= b)
{
mark[x].update(, m, , y_l, y_r, tmp);
return;
}
int mid = (l + r) >> ;
update(l, mid, x << , a, b, y_l, y_r, tmp);
update(mid + , r, x << | , a, b, y_l, y_r, tmp);
}
int query(int l, int r, int x, int a, int b, int y_l, int y_r)
{
if(l > b || r < a) return ;
if(l >= a && r <= b) return mx[x].query(, m, , y_l, y_r);
int mid = (l + r) >> ;
return max(mark[x].query(, m, , y_l, y_r), max(query(l, mid, x << , a, b, y_l, y_r), query(mid + , r, x << | , a, b, y_l, y_r)));
}
} T;
int main()
{
scanf("%d%d%d", &n, &m, &t);
while(t --)
{
int d, s, w, x, y, tmp;
scanf("%d%d%d%d%d", &d, &s, &w, &x, &y);
++ x;
++ y;
tmp = T.query(, n, , x, x + d - , y, y + s - );
T.update(, n, , x, x + d - , y, y + s - , w + tmp);
}
printf("%d\n", T.query(, n, , , n, , m));
return ;
}
bzoj1513的更多相关文章
- BZOJ1513 [POI2006]Tet-Tetris 3D 【二维线段树】
题目链接 BZOJ1513 题解 真正地理解了一波线段树标记永久化的姿势 每个节点维护两个值\(v\)和\(tag\) \(v\)代表儿子中的最值 \(tag\)代表未下传的最值 显然节点的区间大于等 ...
- 【BZOJ1513】[POI2006]Tet-Tetris 3D 二维线段树
[BZOJ1513][POI2006]Tet-Tetris 3D Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维 ...
- bzoj1513: [POI2006]Tet-Tetris 3D
Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一 ...
- bzoj1513【POI2006】Tet-Tetris 3D
1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec Memory Limit: 162 MB Submit: 733 Solved: 245 [Subm ...
- BZOJ1513:[POI2006]TET-Tetris 3D(线段树套线段树)
Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一 ...
- [BZOJ1513]Tet-Tetris 3D
get了新的标记永久化技能- 这题要求询问max和覆盖,因为是线段树套线段树,所以内外都不可以标记下传 这种标记永久化的套路是维护两个标记:$mx,all$,$mx$表示这个子树内的真最大值,$all ...
- [转载]hzwer的bzoj题单
counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...
- BZOJ刷题列表【转载于hzwer】
沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...
随机推荐
- 【Floyd最短路】第七届福建省赛 FZU Problem 2271 X
http://acm.fzu.edu.cn/problem.php?pid=2271 [题意] 给定一个n个点和m条边的无向连通图,问最多可以删去多少条边,使得每两个点之间的距离(最短路长度)不变. ...
- bzoj 1700 Problem Solving 解题 dp
[Usaco2007 Jan]Problem Solving 解题 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 492 Solved: 288[Sub ...
- UltraEdit-14.10.0.1024版本语法着色配置
用了UltraEdit有段时间了,一直没做语法着色,当做普通文本编辑器使用,这也太委屈这个“神器”了. 今天就让它物尽其用吧.体验一把UltraEdit的语法高亮功能. 参考:http://www.1 ...
- 16.1117 NOIP 模拟赛
水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...
- 【BZOJ1430】小猴打架(Prufer编码)
题意:求n个点带编号生成树的不同加边序列个数 n<=10^6 思路: WJMZBMR:额.首先他们打架的关系是一颗无根树,就有n^(n-2)种情况,还有打架的顺序,是(n-1)!种,乘起来就可以 ...
- 深入理解计算机操作系统——第11章:全球IP英特网
全球IP英特网 (1)每台英特网主机都运行实现TCPIP协议的软件. (2)英特网的客户端和服务器混合使用套接字接口函数和Unix IO函数来进行通信. (3)套接字函数典型的是作为陷入内核的系统调用 ...
- [Bzoj3668][Noi2014]起床困难综合症(位运算)
3668: [Noi2014]起床困难综合症 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2612 Solved: 1500[Submit][St ...
- 使用Spring定时任务并且通过AOP监控任务执行情况
原文:http://www.open-open.com/code/view/1426250803279 本文讲的是通过Spring注解的方式实现任务调度.只要引入了spring-context包就能够 ...
- HDU 4115 Eliminate the Conflict(2-sat)
HDU 4115 Eliminate the Conflict pid=4115">题目链接 题意:Alice和Bob这对狗男女在玩剪刀石头布.已知Bob每轮要出什么,然后Bob给Al ...
- FreeFileSync同步定时执行
Schedule a Batch Job Create a new batch job via FreeFileSync's main dialog: Menu → File → Save as a ...