[bzoj4822][Cqoi2017]老C的任务&[bzoj1935][Shoi2007]Tree 园丁的烦恼
#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
#define MN 1000000
#define N 524288
using namespace std;
inline int read()
{
int x = , f = ; char ch = getchar();
while(ch < '' || ch > ''){ if(ch == '-') f = -; ch = getchar();}
while(ch >= '' && ch <= ''){x = x * + ch - '';ch = getchar();}
return x * f;
}
ll Ans[MN+],t[N*+];
int cm=,n,m,cnt=,Y[MN+];
struct Tree{int x,y,z;}T[MN+];
struct ques{int x,l,r,id,ad;}q[MN*+];
bool cmp(ques x,ques y){return x.x<y.x;}
bool cmp2(Tree x,Tree y){return x.x<y.x;}
inline void Renew(int x,int ad){for(t[x+=N]+=ad,x>>=;x;x>>=)t[x]=t[x<<]+t[x<<|];}
inline ll Query(int l,int r)
{
if(l>r) return ;ll sum=;
for(l+=N-,r+=N+;l^r^;l>>=,r>>=)
{
if(~l&) sum+=t[l+];
if( r&) sum+=t[r-];
}
return sum;
}
int main()
{
n=read();m=read();
for(int i=;i<=n;++i) T[i].x=read(),Y[i]=T[i].y=read(),T[i].z=read();
sort(Y+,Y+n+);
for(int i=;i<=n;++i) if(Y[i]!=Y[i-]) Y[++cm]=Y[i];
for(int i=;i<=n;++i)
T[i].y=lower_bound(Y+,Y+cm+,T[i].y)-Y;
for(int i=;i<=m;++i)
{
int X1=read(),Y1=read(),X2=read(),Y2=read();
Y1=lower_bound(Y+,Y+cm+,Y1)-Y;
Y2=upper_bound(Y+,Y+cm+,Y2)-Y-;
q[++cnt]=(ques){X1-,Y1,Y2,i,-};
q[++cnt]=(ques){X2,Y1,Y2,i,};
}
sort(q+,q+cnt+,cmp);
sort(T+,T+n+,cmp2);
for(int i=,j=;j<=cnt;)
if(i<=n&&T[i].x<=q[j].x) Renew(T[i].y,T[i].z),++i;
else Ans[q[j].id]+=q[j].ad*Query(q[j].l,q[j].r),++j;
for(int i=;i<=m;++i) printf("%lld\n",Ans[i]);
return ;
}
[bzoj4822][Cqoi2017]老C的任务&[bzoj1935][Shoi2007]Tree 园丁的烦恼的更多相关文章
- [bzoj1935][shoi2007]Tree 园丁的烦恼(树状数组+离线)
1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec Memory Limit: 357 MBSubmit: 980 Solved: 450[Submit][ ...
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼
1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec Memory Limit: 357 MBSubmit: 552 Solved: 220[Submit][ ...
- bzoj千题计划143:bzoj1935: [Shoi2007]Tree 园丁的烦恼
http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y #include<cstdio> #i ...
- [bzoj1935][Shoi2007]Tree 园丁的烦恼 _树状数组
Tree 园丁的烦恼 bzoj-1935 Shoi-2007 题目大意:给定平面上的$n$个点,$m$次查询矩形点个数. 注释:$1\le n,m\le 5\cdot 10^5$. 想法:静态二维数点 ...
- BZOJ1935:[SHOI2007]Tree 园丁的烦恼(CDQ分治)
Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个园丁道: ...
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼(树状数组 二维数点)
题意 题目链接 Sol 二维数点板子题 首先把询问拆成四个矩形 然后离散化+树状数组统计就可以了 // luogu-judger-enable-o2 #include<bits/stdc++.h ...
- [BZOJ1935][SHOI2007]Tree 园丁的烦恼(树状数组)
题目描述 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草. 有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思 ...
- 【树状数组】bzoj1935 [Shoi2007]Tree 园丁的烦恼
把y坐标离散化后,按x坐标排序,把询问拆成四个点,每次询问某个点左下角的点的个数,注意处理边界和重叠的情况. #include<cstdio> #include<algorithm& ...
- 初涉二维数点问题&&bzoj1935: [Shoi2007]Tree 园丁的烦恼
离线好评 Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个 ...
随机推荐
- python 异步协程
"""A very simple co-routine scheduler. Note: this is written to favour simple code ov ...
- EasyUI 修改 Messager 消息框大小
需求是要修改确认消息窗口的大小. 简单的调用方法是这样的: $.messager.confirm('操作确认', '确定批量编辑文章?', function (r) { ... } 这个时候生成的弹窗 ...
- 深度学习之 cnn 进行 CIFAR10 分类
深度学习之 cnn 进行 CIFAR10 分类 import torchvision as tv import torchvision.transforms as transforms from to ...
- IDEA安装和JDK的配置
安装: 免费获取注册码: http://idea.lanyus.com/ 将其压缩包解压后: 应用程序在bin目录下 打开之后: 选择第二个,输入刚获取的验证码: 成功. 如果没有安装JDK报错 ...
- Java:现有线程T1/T2/T3,如何确保T1执行完成之后执行T2,T3在T2执行完成之后执行。
要实现多个线程执行完成先后,就要知道如何实现线程之间的等待,java线程等待实现是join.java的jdk中join方法实现如下: public final synchronized void jo ...
- UVA-10714 Ants---蚂蚁模拟
题目链接: https://vjudge.net/problem/UVA-10714 题目大意: 给你一个长为L厘米的木棍在上面有n只蚂蚁,蚂蚁的爬行时间均为1厘米/秒,两只蚂蚁先遇会立即调转方向,调 ...
- [Debug]测试环境Giraffe无法正确登录
BUG描述: 在测试环境192.168.2.72上的giraffe无法正确登录,输入正确的用户名.密码,点击登录无反应,输入错误的用户名密码会报错 原因: 2.72安装giraffe的磁盘空间已满,导 ...
- [转]使用awk批量杀进程的命令
1. ps -ef|grep aaa|grep -v grep 这是大家很熟悉的命令,这里就不再多说,就是从当前系统运行的进程的进程名中包含aaa关键字的进程. 2. 后面部分就是awk命令了,一般a ...
- ubuntu16.04安装jdk1.8
首先去Oracle官网下载JDK1.8的tar.gz压缩包. 然后下载下来的包的默认位置应该是在~/下载/下. 执行如下命令解压缩并安装JDK. cd ~/下载/ tar -zxvf jdk-8u16 ...
- jQuery系列 第七章 jQuery框架DOM操作
第七章 jQuery框架的选择器 jQuery框架继承和优化了JavaScript访问DOM对象的特性,我们使用jQuery框架提供的api可以更加方便的操作DOM对象. 7.1 创建DOM节点 使用 ...