BZOJ1513:[POI2006]TET-Tetris 3D(线段树套线段树)
Description
Input
Output
Sample Input
4 3 2 0 0
3 3 1 3 0
7 1 2 0 3
2 3 3 2 2
Sample Output
6
Solution
区间修改,必须标记永久化
Code
#include<iostream>
#include<cstring>
#include<cstdio>
#define INF (0x7fffffff)
using namespace std; int D,S,N,d,s,h,x,y; struct Treey
{
int Segt[],mark[];
void Update(int node,int l,int r,int l1,int r1,int k)
{
if (l>r1 || r<l1) return;
Segt[node]=max(Segt[node],k);
if (l1<=l && r<=r1)
{
mark[node]=max(mark[node],k);
return;
}
int mid=(l+r)/;
Update(node*,l,mid,l1,r1,k);
Update(node*+,mid+,r,l1,r1,k);
}
int Query(int node,int l,int r,int l1,int r1)
{
if (l>r1 || r<l1) return -INF;
if (l1<=l && r<=r1)
return Segt[node];
int mid=(l+r)/,ans=mark[node];
int t=max(Query(node*,l,mid,l1,r1),Query(node*+,mid+,r,l1,r1));
return max(t,ans);
}
}; struct Treex
{
Treey Segt[],mark[];
void Update(int node,int l,int r,int l1,int r1,int l2,int r2,int k)
{
if (l>r1 || r<l1) return;
Segt[node].Update(,,D,l2,r2,k);
if (l1<=l && r<=r1)
{
mark[node].Update(,,D,l2,r2,k);
return;
}
int mid=(l+r)/;
Update(node*,l,mid,l1,r1,l2,r2,k);
Update(node*+,mid+,r,l1,r1,l2,r2,k);
}
int Query(int node,int l,int r,int l1,int r1,int l2,int r2)
{
if (l>r1 || r<l1) return -INF;
if (l1<=l && r<=r1)
return Segt[node].Query(,,D,l2,r2);
int mid=(l+r)/,ans=mark[node].Query(,,D,l2,r2);
int t=max(Query(node*,l,mid,l1,r1,l2,r2),Query(node*+,mid+,r,l1,r1,l2,r2));
return max(t,ans);
}
}T; int main()
{
scanf("%d%d%d",&D,&S,&N);
for (int i=;i<=N;++i)
{
scanf("%d%d%d%d%d",&d,&s,&h,&x,&y);
int maxn=T.Query(,,D,x,x+d-,y,y+s-);
T.Update(,,D,x,x+d-,y,y+s-,maxn+h);
}
printf("%d",T.Query(,,D,,D,,D));
}
BZOJ1513:[POI2006]TET-Tetris 3D(线段树套线段树)的更多相关文章
- bzoj 3196 Tyvj 1730 二逼平衡树(线段树套名次树)
3196: Tyvj 1730 二逼平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1807 Solved: 772[Submit][Stat ...
- [BZOJ 1901] Dynamic Rankings 【树状数组套线段树 || 线段树套线段树】
题目链接:BZOJ - 1901 题目分析 树状数组套线段树或线段树套线段树都可以解决这道题. 第一层是区间,第二层是权值. 空间复杂度和时间复杂度均为 O(n log^2 n). 线段树比树状数组麻 ...
- ZJOI 2017 树状数组(线段树套线段树)
题意 http://uoj.ac/problem/291 思路 不难发现,九条カレン醬所写的树状数组,在查询区间 \([1,r]\) 的时候,其实在查询后缀 \([r,n]\) :在查询 \([l,r ...
- BZOJ4317Atm的树&BZOJ2051A Problem For Fun&BZOJ2117[2010国家集训队]Crash的旅游计划——二分答案+动态点分治(点分树套线段树/点分树+vector)
题目描述 Atm有一段时间在虐qtree的题目,于是,他满脑子都是tree,tree,tree…… 于是,一天晚上他梦到自己被关在了一个有根树中,每条路径都有边权,一个神秘的声音告诉他,每个点到其他的 ...
- hdu-4819-线段树套线段树
http://acm.hdu.edu.cn/showproblem.php?pid=4819 给出一个N*N的矩阵,每次询问一个m*m的子矩阵里的floor((maxv+minv)/2)并把中间的元素 ...
- dfs序+主席树 或者 树链剖分+主席树(没写) 或者 线段树套线段树 或者 线段树套splay 或者 线段树套树状数组 bzoj 4448
4448: [Scoi2015]情报传递 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 588 Solved: 308[Submit][Status ...
- 【vijos】1750 建房子(线段树套线段树+前缀和)
https://vijos.org/p/1750 是不是我想复杂了.... 自己yy了个二维线段树,然后愉快的敲打. 但是wa了两法.......sad 原因是在处理第二维的更新出现了个小问题,sad ...
- [TJOI2017][bzoj4889] 不勤劳的图书管理员 [线段树套线段树]
题面 传送门 思路 考虑两本书的位置交换对答案的贡献: (为了方便描述,用"左边那本"和"右边那本"称呼两本我们要交换的书,"中间那本"是我 ...
- 【bzoj4785】[Zjoi2017]树状数组 线段树套线段树
题目描述 漆黑的晚上,九条可怜躺在床上辗转反侧.难以入眠的她想起了若干年前她的一次悲惨的OI 比赛经历.那是一道基础的树状数组题.给出一个长度为 n 的数组 A,初始值都为 0,接下来进行 m 次操作 ...
- BZOJ1901 ZOJ2112 线段树+treap (线段树套线段树)
BZOJ1901: 线段树套线段树做法: (外层线段树 里层动态开节点的权值线段树) 有一个小小的trick 可以省掉二分变成nlog^2n的 就是把查询的区间都取出来- logn个一起走- 2016 ...
随机推荐
- Json.Net组件指定/忽略序列化字段属性技巧知识点
我们在用Json.Net序列化组件序列化类的时候,经常有这样的一个需求:指定被序列化类中的某些字段属性是要忽略的,或者是指定字段属性序列化 比如下面这个类: public class Bar { pu ...
- xmpp实现的即时通讯聊天(一)
参考网址:http://www.jianshu.com/p/b401ad6ba1a7 http://www.jianshu.com/p/4edbae55a07f 一.mysql和openfire环境的 ...
- 【redis中键的生存时间(expire) 】
1.redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它 expire 设置生存时间(单位/秒) pexpire 设置生存时间( ...
- 《码出高效 Java开发手册》第三章 代码风格
第3章 代码风格 3.1 命名 符合语言特性 体现代码元素特征: Abstract xxx. Basexxxx.xxException.xxxTest等; 包名统一使用小写, 完整单词+点分隔符; 枚 ...
- Tomcat启动项目两次
网上一搜,给出的答案都一样,不外乎:1.删除 Host 标签配置的 appBase="webapps"2.删除 Context 配置 此处这样做:重新添加Tomcat,选择好自己的 ...
- 我Win下常用工具清单
GoAgent 搞研发的没有一个FQ访问Google的工具,真没法工作,所以第一主推这个, 相关按照方式请参考: http://www.cnblogs.com/ghj1976/category/696 ...
- fzu 2139 久违的月赛之二
Problem 2139 久违的月赛之二 Accept: 42 Submit: 106Time Limit: 1000 mSec Memory Limit : 32768 KB Probl ...
- HDU 3501 Calculation 2------欧拉函数变形
Calculation 2 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 【学习笔记】--- 老男孩学Python,day12 函数名的应用,闭包,迭代器
1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用 1.赋值 def func(): print("你吃了么?") # print(func) # a = func # ...
- 阿里云服务器linux主机如何添加swap分区
为什么要添加Swap分区?swap分区,即交换区,作用为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作 ...