题意

给\(n(1 \le n \le 20000)\)个立方体\((x, y, z)\),依次落下。求所有立方体落下完了以后最高的高度。

分析

平面求最大值,平面更新最大值。

题解

二维线段树走起,由于不好自下往上更新而且发现更新的时候值是越来越大,所以我们可以在每一次更新的时候直接在走过的路径上更新一下最大值(or第二维线段树)即可。

#include <bits/stdc++.h>
using namespace std;
inline int getint() {
int x=0, c=getchar();
for(; c<48||c>57; c=getchar());
for(; c>47&&c<58; x=x*10+c-48, c=getchar());
return x;
}
inline void U(int &a, int b) {
a=max(a, b);
}
const int N=2105;
int n, m, q;
struct T1 {
int w[N], tag[N];
void upd(int L, int R, int g, int l=1, int r=m, int x=1) {
U(w[x], g);
if(L<=l && r<=R) {
U(tag[x], g);
return;
}
int mid=(l+r)>>1;
if(L<=mid) {
upd(L, R, g, l, mid, x<<1);
}
if(mid<R) {
upd(L, R, g, mid+1, r, x<<1|1);
}
}
int ask(int L, int R, int l=1, int r=m, int x=1) {
if(L<=l && r<=R) {
return w[x];
}
int mid=(l+r)>>1, y=tag[x];
if(L<=mid) {
U(y, ask(L, R, l, mid, x<<1));
}
if(mid<R) {
U(y, ask(L, R, mid+1, r, x<<1|1));
}
return y;
}
};
struct T2 {
T1 w[N], tag[N];
void upd(int L, int R, int LL, int RR, int g, int l=1, int r=n, int x=1) {
w[x].upd(LL, RR, g);
if(L<=l && r<=R) {
tag[x].upd(LL, RR, g);
return;
}
int mid=(l+r)>>1;
if(L<=mid) {
upd(L, R, LL, RR, g, l, mid, x<<1);
}
if(mid<R) {
upd(L, R, LL, RR, g, mid+1, r, x<<1|1);
}
}
int ask(int L, int R, int LL, int RR, int l=1, int r=n, int x=1) {
if(L<=l && r<=R) {
return w[x].ask(LL, RR);
}
int mid=(l+r)>>1, y=tag[x].ask(LL, RR);
if(L<=mid) {
U(y, ask(L, R, LL, RR, l, mid, x<<1));
}
if(mid<R) {
U(y, ask(L, R, LL, RR, mid+1, r, x<<1|1));
}
return y;
}
}t; int main() {
n=getint(), m=getint(), q=getint();
for(; q--; ) {
int d=getint(), s=getint(), w=getint(), x=getint(), y=getint();
++x, ++y;
t.upd(x, x+d-1, y, y+s-1, t.ask(x, x+d-1, y, y+s-1)+w);
}
printf("%d\n", t.ask(1, n, 1, m));
return 0;
}

【BZOJ】1513: [POI2006]Tet-Tetris 3D的更多相关文章

  1. 【BZOJ】1524: [POI2006]Pal

    题意 给出\(n\)个回文串\(s_i(\sum_{i=1}^{n} |s_i| \le 2000000)\)求如下二元组\((i, j)\)的个数\(s_i + s_j\)仍然是回文串. 分析 这道 ...

  2. 【BZOJ】3052: [wc2013]糖果公园

    http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题意:n个带颜色的点(m种),q次询问,每次询问x到y的路径上sum{w[次数]*v[颜色]} ...

  3. 【BZOJ】3319: 黑白树

    http://www.lydsy.com/JudgeOnline/problem.php?id=3319 题意:给一棵n节点的树(n<=1e6),m个操作(m<=1e6),每次操作有两种: ...

  4. 【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3319 以为是模板题就复习了下hld............................. 然后n ...

  5. 【BZOJ】1013: [JSOI2008]球形空间产生器sphere

    [BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...

  6. 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)

    Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图 ...

  7. 【BZOJ】【3083】遥远的国度

    树链剖分/dfs序 其实过了[BZOJ][4034][HAOI2015]T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果roo ...

  8. 【BZOJ】【2434】【NOI2011】阿狸的打字机

    AC自动机+DFS序+BIT 好题啊……orz PoPoQQQ 大爷 一道相似的题目:[BZOJ][3172][TJOI2013]单词 那道题也是在fail树上数有多少个点,只不过这题是在x的fail ...

  9. 【BZOJ】【2738】&【Tsinsen】【A1333】矩阵乘法

    整体二分+树状数组 过了[BZOJ][2527][POI2011]Meteors以后这题就没那么难啦~ 关键是[从小到大]依次插入数字,然后整体二分每个查询的第k大是在第几次插入中被插入的……嗯大概就 ...

随机推荐

  1. 11g SQL Monitor

    1,首先确认两个参数的值 SQL> show parameter statistics_level NAME                     TYPE     VALUE ------- ...

  2. Oracle优化-表设计

    前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer.Share Pool.Redo Log Buffer等内存模块配置不合理, ...

  3. RTP timestamp与帧率及时钟频率的关系

    转自:http://blog.csdn.net/jasonhwang/article/details/7316128 RTP timestamp是用时钟频率(clock rate)计算而来表示时间的. ...

  4. 阿里云(ECS)Centos服务器LNMP环境搭建

    阿里云( ECS ) Centos7 服务器 LNMP 环境搭建 前言 第一次接触阿里云是大四的时候,当时在校外公司做兼职,关于智能家居项目的,话说当时俺就只有一个月左右的 php 后台开发经验(还是 ...

  5. Android中常用的五种数据存储方式

    第一种: 使用SharedPreferences存储数据 适用范围: 保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小 ...

  6. 导出word使用模版

    在我们做我们的小组项目的时候,刚开始的时候我们用到的是Mvc+EF,用上了我们的ITOO框架.在最开始的计划,我们要用到瑞郎报表.可是呢,由于工期原因以及技术暂时没有实现,我们不得不想一个比较折中的方 ...

  7. 【SQL Sever】SQL Sever数据库重命名

    将SQL数据库重命名,会有两种情况: 1.未使用的数据库 方法:未使用的数据库改名比较方便,找到你要更改的数据库,右键选择[重命名] 然后就可以重新起名字了,重新起名字之后,点击其他的空白处就可以了, ...

  8. HTTP协议开发应用-文件服务器

    HTTP(超文本传输协议)协议是建立在TCP传输协议之上的应用层协议.HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. 本文将重点介绍如何基于Netty的 ...

  9. Uva 129 Krypton Factor

    0.这道题的输出 处理起来挺麻烦的 以后类似的可以借鉴一下 ;i<cur;i++) { && i%==) printf("\n%c",a[i]); & ...

  10. 《DSP using MATLAB》示例Example5.2

    代码: L = 5; N = 20; k = [-N/2:N/2]; % square wave parameters xn = [ones(1,L), zeros(1,N-L)]; % Sq wav ...