[bzoj1935][shoi2007]Tree 园丁的烦恼(树状数组+离线)
1935: [Shoi2007]Tree 园丁的烦恼
Time Limit: 15 Sec Memory Limit: 357 MB
Submit: 980 Solved: 450
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
0 0
0 1
1 0
0 0 1 1
Sample Output
HINT
Source
二维树状数组?快去试试!
好吧,数组已炸。但可以试试别的方法,比如只用一维树状数组
一维怎么做?忽略另一维就好了
当然,数据不会弱到这都能A的
但是我们看看什么情况这种做法就是对的
画一个图,观察到例如忽略y轴时,对于询问(1,1)(x,y),如果在1到x间,只添加了从1到y间的点,那么这么做就是正确的
所以对于所有坐标和询问都按一个坐标轴排序,按另一轴建树状数组(注意是混起来)
这样就能保证处理询问时,上面的情况时刻成立
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<algorithm>
using namespace std;
typedef struct{
int x,y,id,f;
}tr;
int cmp(const tr a,const tr b){
if(a.x!=b.x)return a.x<b.x;
else if(a.y!=b.y)return a.y<b.y;
else return a.id<b.id;//???
}
tr qr[];
int cnt=;
int bit[];
int ans[];
int mx=,m,n;
int lb(int x){
return x&(-x);
}
int q(int x){
int ans=;
while(x){
ans+=bit[x];
x-=lb(x);
}
return ans;
}
int c1(int x){
while(x<=mx+){
bit[x]++;
x+=lb(x);
}
return ;
}
int main(){
scanf("%d %d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d %d",&qr[i].x,&qr[i].y);
qr[i].x++;
qr[i].y++;
mx=max(qr[i].y,mx);
}
cnt=n;
for(int i=;i<=m;i++){
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
c++;
d++;
qr[++cnt].x=a,qr[cnt].y=b,qr[cnt].f=,qr[cnt].id=i;
qr[++cnt].x=a,qr[cnt].y=d,qr[cnt].f=-,qr[cnt].id=i;
qr[++cnt].x=c,qr[cnt].y=b,qr[cnt].f=-,qr[cnt].id=i;
qr[++cnt].x=c,qr[cnt].y=d,qr[cnt].f=,qr[cnt].id=i;
}
sort(qr+,qr+cnt+,cmp);
for(int i=;i<=cnt;i++){ if(!qr[i].id)c1(qr[i].y);
else ans[qr[i].id]+=(qr[i].f)*(q(qr[i].y));
}
for(int i=;i<=m;i++){
printf("%d\n",ans[i]);
}
return ;
}
[bzoj1935][shoi2007]Tree 园丁的烦恼(树状数组+离线)的更多相关文章
- BZOJ1935: [Shoi2007]Tree 园丁的烦恼(树状数组 二维数点)
题意 题目链接 Sol 二维数点板子题 首先把询问拆成四个矩形 然后离散化+树状数组统计就可以了 // luogu-judger-enable-o2 #include<bits/stdc++.h ...
- BZOJ 1935: [Shoi2007]Tree 园丁的烦恼 [树状数组 离线 离散化]
传送门 刚才我还在郁闷网上怎么没人用$CDQ$分治做 突然发现根本没有时间序.... #include<iostream> #include<cstdio> #include& ...
- 【bzoj4822/bzoj1935】[Cqoi2017]老C的任务/[Shoi2007]Tree 园丁的烦恼 树状数组
原文地址:http://www.cnblogs.com/GXZlegend/p/6825530.html bzoj4822 题目描述 老 C 是个程序员. 最近老 C 从老板那里接到了一个任务 ...
- BZOJ 1935 Tree 园丁的烦恼 (树状数组)
题意:中文题. 析:按x排序,然后用树状数组维护 y 即可. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000" ...
- 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 园丁的烦恼(离线+树状数组)
题意 给出第一象限的n个点,有m次询问,每次询问一个矩形中的点的个数.(0<=n,m<=500000,0<=xi,yi<=10000000) 题解 一眼望去不可做. 用二位前缀 ...
随机推荐
- Thinkphp 中 distinct 的用法
TP中distinct()的用处主要是去除重复的值 在Thinkphp手册中也详细说明了(链接:http://document.thinkphp.cn/manual_3_2.html#distinct ...
- AIX UNIX 系统管理、维护与高可用集群建设——数据库结构设计
在对数据库类应用进行优化的过程中我们了解到一个原则,即思想上要从结构设计抓起,按照下面的顺序: 1.数据库逻辑结构设计和物理设计. 2.数据库对象部署和SQL代码编写. 3.数据库实例性能调整和优化. ...
- windows下的host文件在哪里?做什么用的?
在Window系统中有个Hosts文件(没有后缀名),在Windows98系统下该文件在Windows目录,在Windows2000/XP系统中位于C:\Winnt\System32\Drivers\ ...
- 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能
一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...
- 转载 wpf使用经验
转载自 胡庆访[ http://zgynhqf.cnblogs.com/ ] WPF 是一个界面层框架技术,要对 WPF 技术达到熟练运用的程度,需要同时拥有开发和设计两方面的知识.而我作为一名开发人 ...
- h5视频上传之前端视频压缩研究
今天领导接到一个h5上传手机视频的需求,主要是要看用户在这个视频中有没有完成某个任务,比如投篮进了几个球. 但是由于手机拍摄的视频文件大小有点大,直接上传的话,用户流量顶不住,而且特别耗时,在这样的情 ...
- HTML5表单那些事
//一般写法 <form method="post" action="http://xxx:port/form"></form> //高 ...
- C# ListView得到选中项及子项
private void listViewEx_MouseClick(object sender, MouseEventArgs e) { ListViewItem lv = listViewEx.G ...
- windows编程环境
自行下载VS2010官方原版并破解你也可以从微软官方直接下载VS2010 正式版,然后自行破解.Microsoft Visual Studio 2010官方下载地址如下:页面:http://www.m ...
- ios web html 上传图片到服务器后方向不对解决
结论: 1.ios上传会在exif中带一个 Orientation的属性,这个属性在windows中不会生效,在ios浏览器中会生效,造成图片在windows资源管理器中与ios浏览器中方向不一致 2 ...