bzoj 1935: [Shoi2007]Tree 园丁的烦恼 离线+树状数组
来源:互联网 发布:爱之谷源码 编辑:程序博客网 时间:2024/05/18 03:15
题意
给定平面上的n个点(xi,yi),每次询问一个矩形内有多少个点。
n,m<=500000
分析
把一个询问拆成四个矩形,然后按x坐标排序后用树状数组维护即可。
代码
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int N=2500005;int n,m,tot,w1,w[N],c[N],ans[500005];struct data{int op,x,y,id,val;}q[N];int read(){ int x=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}bool cmp(data a,data b){ return a.x<b.x||a.x==b.x&&a.op<b.op;}void ins(int x,int y){ while (x<=w1) c[x]+=y,x+=x&(-x);}int query(int x){ int ans=0; while (x) ans+=c[x],x-=x&(-x); return ans;}int main(){ n=read();m=read(); for (int i=1;i<=n;i++) q[++tot].x=read(),q[tot].y=read(),q[tot].op=0,w[++w1]=q[i].y; for (int i=1;i<=m;i++) { int x1=read(),y1=read(),x2=read(),y2=read(); q[++tot].x=x1-1;q[tot].y=y1-1;q[tot].op=1;q[tot].id=i;q[tot].val=1;w[++w1]=q[tot].y; q[++tot].x=x2;q[tot].y=y1-1;q[tot].op=1;q[tot].id=i;q[tot].val=-1;w[++w1]=q[tot].y; q[++tot].x=x1-1;q[tot].y=y2;q[tot].op=1;q[tot].id=i;q[tot].val=-1;w[++w1]=q[tot].y; q[++tot].x=x2;q[tot].y=y2;q[tot].op=1;q[tot].id=i;q[tot].val=1;w[++w1]=q[tot].y; } sort(w+1,w+w1+1);w1=unique(w+1,w+w1+1)-w-1; for (int i=1;i<=tot;i++) q[i].y=lower_bound(w+1,w+w1+1,q[i].y)-w; sort(q+1,q+tot+1,cmp); for (int i=1;i<=tot;i++) if (q[i].op==0) ins(q[i].y,1); else ans[q[i].id]+=q[i].val*query(q[i].y); for (int i=1;i<=m;i++) printf("%d\n",ans[i]); return 0;}
阅读全文
0 0
- bzoj 1935: [Shoi2007]Tree 园丁的烦恼 离线+树状数组
- BZOJ 1935 SHOI2007 园丁的烦恼 树状数组
- 【bzoj 1935】【codevs 2342】[Shoi2007]Tree 园丁的烦恼(树状数组)
- bzoj 1935: [Shoi2007]Tree 园丁的烦恼
- bzoj 1935: [Shoi2007]Tree 园丁的烦恼
- BZOJ 1935 [Shoi2007]Tree 园丁的烦恼
- BZOJ 1935: [Shoi2007]Tree 园丁的烦恼
- BZOJ 1935: [Shoi2007]Tree 园丁的烦恼
- [BZOJ1935][SHOI2007]Tree 园丁的烦恼(离线+动态维护树状数组)
- [bzoj1935][Shoi2007]Tree 园丁的烦恼 树状数组
- 【BZOJ】【P1935】【Shoi2007】【Tree 园丁的烦恼】【题解】【树状数组+离散化】
- BZOJ 1935 SHOI 2007 Tree 园丁的烦恼 树状数组
- BZOJ 1935 Tree 园丁的烦恼 [差分][树状数组]
- 【Shoi2007】bzoj 1935 园丁的烦恼
- 1935: [Shoi2007]Tree 园丁的烦恼
- BZOJ_P1935 [Shoi2007]Tree 园丁的烦恼(离散化+树状数组+差分思想)
- 4822: [Cqoi2017]老C的任务&&bzoj 1935: [Shoi2007]Tree 园丁的烦恼
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼
- 强软弱虚---强引用、软引用、弱引用、虚引用
- C# WEBSERVICE adcheck
- ABAP EXCEL 模板
- 【Spring】 (8)注解实现多线程
- Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
- bzoj 1935: [Shoi2007]Tree 园丁的烦恼 离线+树状数组
- Jzoj5419 筹备计划
- NOIP模拟(11.06)T1 数集
- Bitmapcache三级缓存基本使用
- 2017年中国人工智能产业专题研究报告(完整版)
- 从芯片巨头沦落到收购对象 高通是怎样失去魔力的?
- 星际旅行、返老还童…1.3万字看完今年的WE大会,简直就是一部科幻电影
- CSP
- 【第12章】【WebSocket】