bzoj1382: [Baltic2001]Mars Maps
Description
Input
Output
#include<cstdio>
#include<algorithm>
typedef long long i64;
char buf[],*ptr=buf-;
int _(){
int x=,f=,c=*++ptr;
while(c<)c=='-'&&(f=-),c=*++ptr;
while(c>)x=x*+c-,c=*++ptr;
return x*f;
}
int n,_L,_R,A;
int rs[][];
struct node{
node*l,*r;
int mn,mc,av;
void dn(){
if(!av)return;
l->mn+=av;
l->av+=av;
r->mn+=av;
r->av+=av;
av=;
}
void up(){
mn=l->mn;
mc=l->mc;
if(mn>r->mn)mn=r->mn,mc=r->mc;
else if(mn==r->mn)mc+=r->mc;
}
void inc(int L,int R){
if(_L<=L&&R<=_R){
mn+=A;
av+=A;
return;
}
dn();
int M=L+R>>;
if(_L<=M)l->inc(L,M);
if(_R>M)r->inc(M+,R);
up();
}
}ns[],*np=ns,*rt;
int ys[],yp=;
node*build(int L,int R){
node*w=np++;
w->mc=ys[R+]-ys[L];
if(L!=R){
int M=L+R>>;
w->l=build(L,M);
w->r=build(M+,R);
}
return w;
}
struct event{
int x,y1,y2,t;
}e[],*ep=e;
bool operator<(const event&a,const event&b){
return a.x<b.x;
}
int main(){
fread(buf,,,stdin);
n=_();
for(int i=;i<n;++i){
for(int j=;j<;++j)rs[i][j]=_();
ys[yp++]=rs[i][];
ys[yp++]=rs[i][];
}
std::sort(ys,ys+yp);
yp=std::unique(ys,ys+yp)-ys;
for(int i=;i<n;++i){
rs[i][]=std::lower_bound(ys,ys+yp,rs[i][])-ys;
rs[i][]=std::lower_bound(ys,ys+yp,rs[i][])-ys-;
*(ep++)=(event){rs[i][],rs[i][],rs[i][],};
*(ep++)=(event){rs[i][],rs[i][],rs[i][],-};
}
rt=build(,yp-);
std::sort(e,ep);
ep->x=0x7fffffff;
int px=e->x,h=ys[yp-]-ys[];
i64 ans=;
for(event*p1=e,*p2=e;p1!=ep;p1=p2){
ans+=i64(p1->x-px)*(h-(rt->mn?:rt->mc));
px=p1->x;
while(p1->x==p2->x)++p2;
while(p1!=p2){
_L=p1->y1,_R=p1->y2,A=p1->t;
if(_L<=_R)rt->inc(,yp-);
++p1;
}
}
printf("%lld",ans);
return ;
}
bzoj1382: [Baltic2001]Mars Maps的更多相关文章
- BZOJ1382:[Baltic2001]Mars Maps
浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...
- [BZOJ1382]Mars Maps
Description In the year 2051, several Mars expeditions have explored different areas of the red plan ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- [IOI1998]Picture
Description 在一个平面上放置一些矩形,所有的边都为垂直或水平.每个矩形可以被其它矩形部分或完全遮盖,所有矩形合并成区域的边界周长称为轮廓周长. 要求:计算轮廓周长. 数据规模: 0≤矩形数 ...
- How to Tell Science Stories with Maps
Reported Features How to Tell Science Stories with Maps August 25, 2015 Greg Miller This map, part ...
- 【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列 - 我们如约而至
导语 昨天上午,微信在广州举办了微信公开课Pro.于是,精神哥这两天的朋友圈被小龙的"八不做"刷屏了.小伙伴们可能不知道,下午,微信公开课专门开设了技术分论坛.在分论坛中,微信开源 ...
- 【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(二) - 信令传输超时设计
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/9DJxipJaaBC8yC-buHgnTQ 作者简介: ...
- 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...
- 检索Google Maps地图位置(小训练)
名称:检索地图位置 内容:地图初期显示和检索显示 功能:根据条件检索地图的经度与纬度 1.在这之前我们需要创建一个表(Accoun__c),添加一个重要的字段地理位置情報,它会默认的给你两个字段经度和 ...
随机推荐
- (实用篇)php无限遍历目录
使用的函数有: isset()判断某个变量是否定义 chdir() 将当前目录改变为指定的目录. opendir() 打开目录. readdir()读取目录. getcwd().获取当前目录. 还用到 ...
- UVa 10120 - Gift?!
题目大意 美丽的村庄里有一条河,N个石头被放置在一条直线上,从左岸到右岸编号依次为1,2,...N.两个相邻的石头之间恰好是一米,左岸到第一个石头的距离也是一米,第N个石头到右岸同样是一米.礼物被放置 ...
- 关于SSH整合中对于Hibernate的Session关闭的问题
在web.xml的Struts2的配置上面加上 <filter> <filter-name>OpenSessionInViewFilter</filter-name> ...
- Base64编码的实现(三种方式)
package com.smart.base; import org.apache.commons.codec.binary.Base64; public class Base64Test { pri ...
- Python笔记本
Python 的主提示符( >>> )和次提示符( ... ).主提示符是解释器告诉你它在等你输入下一个语句,次提示符告诉你解释器正在等待你输入当前语句的其它部分. 下划线(_)在解 ...
- 如何更新Android SDK和Build Tool
1. 运行命令 android 2. 勾选并安装需要的版本 3. 完成!
- 代码备份:处理 SUN397 的代码,将其分为 80% 训练数据 以及 20% 的测试数据
处理SUN397 的代码,将其分为80% 训练数据以及20% 的测试数据 2016-07-27 1 %% Code for Process SUN397 Scene Classification 2 ...
- Driver development
Windows Driver Kit (WDK) https://msdn.microsoft.com/en-us/library/windows/hardware/ff557573(v=vs.85) ...
- PCA人脸识别
人脸数据来自http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html 实现代码和效果如下.由于图片数量有限(40*10),将原 ...
- Nginx反向代理讲解和配置
首先来介绍下Nginx的反向代理.代理服务器一般分为正向代理(通常直接称为代理服务器)和反向代理. 画个图我们就好理解了. 正向代理:可以想象成是路由器,我们要通过它来上网的那种.(可以说是客户端的代 ...