BZOJ 1935: [Shoi2007]Tree 园丁的烦恼 [树状数组 离线 离散化]
刚才我还在郁闷网上怎么没人用$CDQ$分治做
突然发现根本没有时间序....
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=3e6+;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-; c=getchar();}
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
return x*f;
}
int n,Q,c[N],mp[N];
int m,qid;
struct Operation{
int x,y,v,id;
int qid,op;
Operation():op(){}
Operation(int x,int y,int v,int id,int qid,int op):
x(x),y(y),v(v),id(id),qid(qid),op(op){}
bool operator <(const Operation &r)const{
return x==r.x?op<r.op:x<r.x;
}
}a[N];
void devideQuery(){
int x1=read()-,y1=read()-,x2=read(),y2=read();
mp[++mp[]]=y1;mp[++mp[]]=y2;
qid++;
m++;a[m]=Operation(x2,y2,,m,qid,);
m++;a[m]=Operation(x1,y2,-,m,qid,);
m++;a[m]=Operation(x2,y1,-,m,qid,);
m++;a[m]=Operation(x1,y1,,m,qid,);
}
void iniMP(){
sort(mp+,mp++mp[]);
int p=;
mp[++p]=mp[];
for(int i=;i<=mp[];i++) if(mp[i]!=mp[i-]) mp[++p]=mp[i];
mp[]=p;
}
int Bin(int v){
int l=,r=mp[];
while(l<=r){
int mid=(l+r)>>;
if(v==mp[mid]) return mid;
else if(v<mp[mid]) r=mid-;
else l=mid+;
}
return ;
}
inline int lowbit(int x){return x&-x;}
void add(int p,int v){for(;p<=n;p+=lowbit(p)) c[p]+=v;}
int sum(int p){
int re=;
for(;p;p-=lowbit(p)) re+=c[p];
return re;
}
int ans[N];
void solve(){
for(int i=;i<=m;i++){
if(!a[i].op) add(a[i].y,);
else ans[a[i].qid]+=a[i].v*sum(a[i].y);
}
for(int i=;i<=Q;i++) printf("%d\n",ans[i]);
}
int main(){
freopen("in","r",stdin);
n=read();Q=read();
for(int i=;i<=n;i++) a[++m].x=read(),mp[++mp[]]=a[m].y=read();
for(int i=;i<=Q;i++) devideQuery();
iniMP();
for(int i=;i<=m;i++) a[i].y=Bin(a[i].y);
sort(a+,a++m);
solve();
}
BZOJ 1935: [Shoi2007]Tree 园丁的烦恼 [树状数组 离线 离散化]的更多相关文章
- [bzoj1935][shoi2007]Tree 园丁的烦恼(树状数组+离线)
1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec Memory Limit: 357 MBSubmit: 980 Solved: 450[Submit][ ...
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼(树状数组 二维数点)
题意 题目链接 Sol 二维数点板子题 首先把询问拆成四个矩形 然后离散化+树状数组统计就可以了 // luogu-judger-enable-o2 #include<bits/stdc++.h ...
- 【bzoj4822/bzoj1935】[Cqoi2017]老C的任务/[Shoi2007]Tree 园丁的烦恼 树状数组
原文地址:http://www.cnblogs.com/GXZlegend/p/6825530.html bzoj4822 题目描述 老 C 是个程序员. 最近老 C 从老板那里接到了一个任务 ...
- BZOJ 1935: [Shoi2007]Tree 园丁的烦恼( 差分 + 离散化 + 树状数组 )
假如矩阵范围小一点就可以直接用二维树状数组维护. 这道题, 差分答案, 然后一维排序, 另一维离散化然后树状数组维护就OK了. ----------------------------------- ...
- BZOJ 1935: [Shoi2007]Tree 园丁的烦恼 +CDQ分治
1935: [Shoi2007]Tree 园丁的烦恼 参考与学习:https://www.cnblogs.com/mlystdcall/p/6219421.html 题意 在一个二维平面中有n颗树,有 ...
- BZOJ.1935.[SHOI2007]Tree园丁的烦恼(CDQ分治 三维偏序)
题目链接 矩形查询可以拆成四个点的前缀和查询(树套树显然 但是空间不够) 每个操作表示为(t,x,y),t默认有序,对x分治,y用树状数组维护 初始赋值需要靠修改操作实现. //119964kb 43 ...
- BZOJ 1935 Tree 园丁的烦恼 (树状数组)
题意:中文题. 析:按x排序,然后用树状数组维护 y 即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000" ...
- bzoj 1935: [Shoi2007]Tree 园丁的烦恼
Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个园丁道: ...
- bzoj1382 1935: [Shoi2007]Tree 园丁的烦恼
1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec Memory Limit: 357 MBSubmit: 1261 Solved: 578[Submit] ...
随机推荐
- QT 操作 excel 教程
前言:环境 win7 64位,QT4.8.5,QT Creator 在 .pro 文件中加入语句"CONFIG+=qaxcontainer"; 源码如下: //main.cpp # ...
- init和plus(编码中遇到问题就看这里)
转自:http://ask.dcloud.net.cn/article/165 编码中遇到问题就看这里: http://uikoo9.com/book/chapterDetail/4 plus初始化原 ...
- Netty5序章之BIO NIO AIO演变
Netty5序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使 ...
- 番外篇--Moddule Zero介绍
1.1 ABPZero - 概述 介绍 微软ASP.NET身份框架 权限 会话 角色管理 默认角色 用户管理 多租户 设置管理 审计日志 1.1.1 介绍 Modulde Zero实现了ASP.NET ...
- 从零开始学习前端JAVASCRIPT — 1、JavaScript基础
1:定义:javascript是一种弱类型.动态类型.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类 ...
- 在ASP.NET Core中通过EF Core实现一个简单的全局过滤查询
前言 不知道大家是否和我有同样的问题: 一般在数据库的设计阶段,会制定一些默认的规则,其中有一条硬性规定就是一定不要对任何表中的数据执行delete硬删除操作,因为每条数据对我们来说都是有用的,并且是 ...
- Java 对二值化图片识别连通域
用Java 对 已经 二值化了的图片 标记连通域 每块的连通域都标记不一样的数字 public static void main(String [] args) throws IOException ...
- Thrift compiler代码生成类解析
代码生成类解析: Thrift--facebook RPC框架,介绍就不说了,百度,google一大把,使用也不介绍,直接上结构和分析吧. Hello.thrift文件内容如下: namespace ...
- python与MySQL
一.python与mysql交互 因版本不同python操作mysql有两个模块,python3不再支持MySQL-python,模块使用都一样: python2.7:MySQL-python pyt ...
- linux各种顔色代表
@linux中的各文件的颜色表示什么 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表示其它 ...