题解:

x升序排序

y离散化+树状数组

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
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;
}
int n,m,tot,que,disc[N*],x[N],y[N],a[N],b[N],c[N],d[N],t[*N],ans[N][];
struct data{int x,y,id,f;}q[*N];
int operator<(data a,data b)
{
return a.x<b.x||(a.x==b.x&&a.f<b.f);
}
void add(int x,int y)
{
for (int i=x;i<=tot;i+=i&-i)t[i]+=y;
}
int query(int x)
{
int sum=;
for (int i=x;i;i-=i&-i)sum+=t[i];
return sum;
}
int find(int x)
{
int l=,r=tot;
while (l<=r)
{
int mid=(l+r)>>;
if (disc[mid]==x)return mid;
else if(disc[mid]<x)l=mid+;
else r=mid-;
}
}
void solve()
{
sort(q+,q+que+);
for (int i=;i<=que;i++)
{
if (!q[i].f)add(q[i].y,);
else
{
int t=query(q[i].y);
ans[q[i].id][q[i].f]=t;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)
{
scanf("%d%d",&x[i],&y[i]);
disc[++tot]=y[i];
}
for (int i=;i<=m;i++)
{
scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
disc[++tot]=b[i];disc[++tot]=d[i];
}
sort(disc,disc+tot+);
for (int i=;i<=n;i++)
{
y[i]=find(y[i]);
q[++que].x=x[i];q[que].y=y[i];
}
for (int i=;i<=m;i++)
{
b[i]=find(b[i]);d[i]=find(d[i]);
q[++que].x=c[i];q[que].y=d[i];q[que].id=i;q[que].f=;
q[++que].x=a[i]-;q[que].y=d[i];q[que].id=i;q[que].f=;
q[++que].x=c[i];q[que].y=b[i]-;q[que].id=i;q[que].f=;
q[++que].x=a[i]-;q[que].y=b[i]-;q[que].id=i;q[que].f=;
}
solve();
for (int i=;i<=m;i++)
{
int t=ans[i][]+ans[i][]-ans[i][]-ans[i][];
printf("%d\n",t);
}
return ;
}

bzoj1935的更多相关文章

  1. 【BZOJ1935/4822】[Shoi2007]Tree 园丁的烦恼/[Cqoi2017]老C的任务 树状数组

    题意:两道题差不多,都是给你一堆平面上的点,每个点有权值,然后m次询问求某一矩形区域内的点权和 题解:先离散化,然后将询问拆成左右两条线段,然后将点和这些线段一起按x坐标排序,在y轴上维护树状数组.然 ...

  2. 【bzoj4822/bzoj1935】[Cqoi2017]老C的任务/[Shoi2007]Tree 园丁的烦恼 树状数组

    原文地址:http://www.cnblogs.com/GXZlegend/p/6825530.html bzoj4822 题目描述 老 C 是个程序员.     最近老 C 从老板那里接到了一个任务 ...

  3. [bzoj1935][Shoi2007]Tree 园丁的烦恼 _树状数组

    Tree 园丁的烦恼 bzoj-1935 Shoi-2007 题目大意:给定平面上的$n$个点,$m$次查询矩形点个数. 注释:$1\le n,m\le 5\cdot 10^5$. 想法:静态二维数点 ...

  4. bzoj1935 [Shoi2007]园丁的烦恼

    bzoj1935 [Shoi2007]园丁的烦恼 有N个点坐标为(xi,yi),M次询问,询问(a,b)-(c,d)的矩形内有多少点. 0≤n≤500000,1≤m≤500000,0≤xi,yi≤10 ...

  5. [bzoj1935][shoi2007]Tree 园丁的烦恼(树状数组+离线)

    1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec  Memory Limit: 357 MBSubmit: 980  Solved: 450[Submit][ ...

  6. BZOJ1935: [Shoi2007]Tree 园丁的烦恼

    1935: [Shoi2007]Tree 园丁的烦恼 Time Limit: 15 Sec  Memory Limit: 357 MBSubmit: 552  Solved: 220[Submit][ ...

  7. [bzoj4822][Cqoi2017]老C的任务&[bzoj1935][Shoi2007]Tree 园丁的烦恼

    来自FallDream的博客,未经允许,请勿转载,谢谢. 老 C 是个程序员.     最近老 C 从老板那里接到了一个任务——给城市中的手机基站写个管理系统.作为经验丰富的程序员,老 C 轻松地完成 ...

  8. BZOJ1935:[SHOI2007]Tree 园丁的烦恼(CDQ分治)

    Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个园丁道: ...

  9. BZOJ1935或洛谷2163 [SHOI2007]园丁的烦恼

    BZOJ原题链接 洛谷原题链接 很容易想到二维前缀和. 设\(S[i][j]\)表示矩阵\((0, 0)(i, j)\)内树木的棵数,则询问的矩形为\((x, y)(xx, yy)\)时,答案为\(S ...

随机推荐

  1. Codeforces 987 F - AND Graph

    F - AND Graph 思路: 首先,x & (~x) == 0 其次,~x 的 子集 y = ((~x) ^ (1<<k)), 0<= k < n(如果k这一位是 ...

  2. ZOJ 3962 Seven Segment Display

    Seven Segment Display 思路: 经典数位dp 代码: #include<bits/stdc++.h> using namespace std; #define LL l ...

  3. google浏览器如何导出书签

     首先打开浏览器点右侧的自定义及控制Google chrome.  点击书签-书签管理器   打开书签管理器界面中·   点击书签管理器的整理  最下面的将书签导出到html文件..  弹出另存为对话 ...

  4. Eclipse无法使用springboot2.x

    <!-- 阿里云提供的镜像地址 --> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mir ...

  5. HTML 第九章总结

    前言 这一章节主要讲了关于 HTML 中关于留白的知识:在这一章节中,从大到小,有: margin border padding context 这四个部分. 关于margin和padding mar ...

  6. zookeeper在搭建的时候,解决后台启动为standalone模式问题

    今天在搭建zookeeper,搭建完成之后,启动一直报错: 上网查了好多资料:有几种解决方案: 1.在配置文件conf目录下,将zoo_sample.cfg删除,只留zoo.cfg(然而就我的情况而言 ...

  7. English trip V1 - 24. Accommodations Teacher:Maple Key: make suggestions 提出建议

    In this lesson you will learn to make suggestions. 在本课程中,您将学习如何提出建议. 课上内容(Lesson) Which place  would ...

  8. PCM数据格式

    PCM数据格式          1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit ster ...

  9. 原生JS实现瀑布流布局

    瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部. 1.首先瀑布流所有的图片应该保持宽度一致,高 ...

  10. Vue自动化工具(Vue-CLI)的安装

    安装VUM 前面学习了普通组件以后,接下来我们继续学习单文件组件则需要提前先安装准备一些组件开发工具.否则无法使用和学习单文件组件. 一般情况下,单文件组件,我们运行在 自动化工具vue-CLI中,可 ...