【树状数组】bzoj1935 [Shoi2007]Tree 园丁的烦恼
把y坐标离散化后,按x坐标排序,把询问拆成四个点,每次询问某个点左下角的点的个数,注意处理边界和重叠的情况。
#include<cstdio>
#include<algorithm>
using namespace std;
#define N 500001
int f,C;
void R(int &x){
C=0;f=1;
for(;C<'0'||C>'9';C=getchar())if(C=='-')f=-1;
for(x=0;C>='0'&&C<='9';C=getchar())(x*=10)+=(C-'0');
x*=f;
}
void P(int x){
if(x<10)putchar(x+'0');
else{P(x/10);putchar(x%10+'0');}
}
struct LiSan{int p,v;}t[N*5];
bool operator < (const LiSan &a,const LiSan &b){return a.v<b.v;}
struct Point{int x,y,type,id;}p[N*5];
bool operator < (const Point &a,const Point &b)
{
if(a.x!=b.x) return a.x<b.x;
if(a.y!=b.y) return a.y<b.y;
return a.type<b.type;
}
int n,m,en,zy;
int d[N*5],anss[N];
void Update(int p){for(;p<=zy;p+=(p&(-p))) ++d[p];}
int Query(int p){int res=0; for(;p;p-=(p&(-p))) res+=d[p]; return res;}
int main()
{
R(n); R(m);
for(int i=1;i<=n;++i)
{
R(p[i].x); R(t[i].v);
t[i].p=i;
}
en=n;
for(int i=1;i<=m;++i)
{
++en; R(p[en].x); R(t[en].v); t[en].p=en; p[en].type=1; p[en].id=i;
++en; R(p[en+2].x); R(t[en+2].v); p[en].id=i;
p[en].x=p[en-1].x; t[en].v=t[en+2].v; p[en].type=2; t[en].p=en;
++en; p[en].x=p[en+1].x; t[en].v=t[en-2].v; t[en].p=en; p[en].type=3; p[en].id=i;
++en; p[en].type=4; p[en].id=i; t[en].p=en;
--p[en-3].x; --t[en-3].v;
--p[en-2].x;
--t[en-1].v;
}
sort(t+1,t+en+1);
p[t[1].p].y=++zy;
for(int i=2;i<=en;++i)
{
if(t[i].v!=t[i-1].v) ++zy;
p[t[i].p].y=zy;
}
sort(p+1,p+en+1);
for(int i=1;i<=en;++i)
if(!p[i].type) Update(p[i].y);
else if(p[i].type==1||p[i].type==4) anss[p[i].id]+=Query(p[i].y);
else anss[p[i].id]-=Query(p[i].y);
for(int i=1;i<=m;++i) P(anss[i]),puts("");
return 0;
}
【树状数组】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 园丁的烦恼(树状数组)
题目描述 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草. 有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思 ...
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼(树状数组 二维数点)
题意 题目链接 Sol 二维数点板子题 首先把询问拆成四个矩形 然后离散化+树状数组统计就可以了 // luogu-judger-enable-o2 #include<bits/stdc++.h ...
- [BZOJ1935][SHOI2007]Tree 园丁的烦恼(离线+树状数组)
题意 给出第一象限的n个点,有m次询问,每次询问一个矩形中的点的个数.(0<=n,m<=500000,0<=xi,yi<=10000000) 题解 一眼望去不可做. 用二位前缀 ...
- 初涉二维数点问题&&bzoj1935: [Shoi2007]Tree 园丁的烦恼
离线好评 Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个 ...
- [bzoj4822][Cqoi2017]老C的任务&[bzoj1935][Shoi2007]Tree 园丁的烦恼
来自FallDream的博客,未经允许,请勿转载,谢谢. 老 C 是个程序员. 最近老 C 从老板那里接到了一个任务——给城市中的手机基站写个管理系统.作为经验丰富的程序员,老 C 轻松地完成 ...
随机推荐
- activity栈清空
http://blog.csdn.net/swjtuxu/article/details/26163737
- HDU 4417 划分树写法
Problem Description Mario is world-famous plumber. His “burly” figure and amazing jumping ability re ...
- Python爬虫学习笔记之爬取新浪微博
import requests from urllib.parse import urlencode from pyquery import PyQuery as pq from pymongo im ...
- Flume的安装,配置及使用
1,上传jar包 2,解压 3,改名 4,更改配置文件 将template文件重镜像 root@Ubuntu-1:/usr/local/apache-flume/conf# cat flume-env ...
- 【BZOJ2820】YY的GCD [莫比乌斯反演]
YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description 求1<=x<=N, ...
- [HNOI2015]部分题解
Day1 T2 [HNOI2015]接水果 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了, ...
- 稀疏编码学习笔记(二)L2范数
L2范数 除了L1范数,还有一种更受宠幸的规则化范数是L2范数: ||W||2.它也不逊于L1范数,它有两个美称,在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression),有人也叫 ...
- CSS3 文本效果(阴影)
CSS3中包含几个新的文本特征. 在本章中您将了解以下文本属性: text-shadow box-shadow text-overflow word-wrap word-break CSS3 的文本阴 ...
- 专业术语/Java专有名词
微服务 Web Service WebAPI(MicroSoft) RESTful RPC 微服务 服务拆分,利用轻量化机制(通常为HTTP源API)实现通信,复杂度可控,独立部署,技术选型灵活,容错 ...
- jquery——通过name属性查找元素
Js代码 : $("div[id]") 选择所有含有id属性的div元素 $("input[name='newsletter']") 选择所有的name属性 ...