POJ 2528 线段树
坑:
这道题的坐标轴跟普通的坐标轴是不一样的……
此题的坐标轴 标号是在中间的……
线段树建树的时候就不用[l,mid][mid,r]了(这样是错的)
直接[l,mid][mid+1,r]就OK了
Discuss里面的人们很纠结啊…….
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 22222
int cases,n,xx[N],yy[N],q[N],u,ans,vis[N];
struct Tree{int l,r,cover;}tree[N*4];
void build(int l,int r,int pos){
tree[pos].l=q[l],tree[pos].r=q[r],tree[pos].cover=0;
if(r==l)return;
int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
build(l,mid,lson),build(mid+1,r,rson);
}
void push_down(int pos){
tree[pos<<1].cover=tree[pos<<1|1].cover=tree[pos].cover;
tree[pos].cover=0;
}
void insert(int l,int r,int pos,int L,int R,int id){
if(tree[pos].l>=L&&tree[pos].r<=R){
tree[pos].cover=id;return;
}
if(tree[pos].cover)push_down(pos);
int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
if(tree[lson].r>=R)insert(l,mid,lson,L,R,id);
else if(tree[rson].l<=L)insert(mid+1,r,rson,L,R,id);
else insert(l,mid,lson,L,R,id),insert(mid+1,r,rson,L,R,id);
}
void query(int l,int r,int pos){
if(tree[pos].cover){if(!vis[tree[pos].cover])vis[tree[pos].cover]=1,ans++;return;}
if(l==r)return;
int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;
query(l,mid,lson),query(mid+1,r,rson);
}
int main(){
scanf("%d",&cases);
while(cases--){
memset(vis,0,sizeof(vis)),ans=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d",&xx[i],&yy[i]);
q[i*2-1]=xx[i],q[i*2]=yy[i];
}
sort(q+1,q+1+n*2);
u=unique(q+1,q+1+n*2)-q-1;
build(1,u,1);
for(int i=1;i<=n;i++){
insert(1,u,1,xx[i],yy[i],i);
}
query(1,u,1);
printf("%d\n",ans);
}
}
POJ 2528 线段树的更多相关文章
- poj 2528(线段树+离散化) 市长的海报
http://poj.org/problem?id=2528 题目大意是市长竞选要贴海报,给出墙的长度和依次张贴的海报的长度区间(参考题目给的图),问最后你能看见的海报有几张 就是有的先贴的海报可能会 ...
- poj 2528 线段树区间修改+离散化
Mayor's posters POJ 2528 传送门 线段树区间修改加离散化 #include <cstdio> #include <iostream> #include ...
- poj 2528 线段树+离散化
题意:在墙上贴一堆海报(只看横坐标,可以抽象成一线段),新海报可以覆盖旧海报.求最后能看到多少张海报 sol:线段树成段更新.铺第i张海报的时候更新sg[i].x~sg[i].y这一段为i. 然而坐标 ...
- POJ 2528 (线段树 离散化) Mayor's posters
离散化其实就是把所有端点放在一起,然后排序去个重就好了. 比如说去重以后的端点个数为m,那这m个点就构成m-1个小区间.然后给这m-1个小区间编号1~m-1,再用线段树来做就行了. 具体思路是,从最后 ...
- poj 2528 线段树 离散化的小技巧
题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报思路:直接搞超时+超内存,需要离散化.离散化简单的来说就是只取我们需要的值来 用,比如说区间[1000,2000],[1990,2012] ...
- Mayor's posters POJ - 2528(线段树 + 离散化)
Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 74745 Accepted: 21574 ...
- Mayor's posters POJ - 2528 线段树区间覆盖
//线段树区间覆盖 #include<cstdio> #include<cstring> #include<iostream> #include<algori ...
- Mayor's posters POJ - 2528 线段树(离散化处理大数?)
题意:输入t组数据,输入n代表有n块广告牌,按照顺序贴上去,输入左边和右边到达的地方,问贴完以后还有多少块广告牌可以看到(因为有的被完全覆盖了). 思路:很明显就是线段树更改区间,不过这个区间的跨度有 ...
- poj 2886 线段树+反素数
Who Gets the Most Candies? Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 12744 Acc ...
随机推荐
- 宿主机mac os无法连接到虚拟机centos
宿主机: Mac OS 10.9.2 虚拟机: [root@localhost ~]# cat /etc/redhat-release CentOS release 6.4 (Final) [root ...
- 如何比较Keras, TensorLayer, TFLearn ?——如果只是想玩玩深度学习,想快速上手 -- Keras 如果工作中需要解决内部问题,想快速见效果 -- TFLearn 或者 Tensorlayer 如果正式发布的产品和业务,自己设计网络模型,需要持续开发和维护 -- Tensorlayer
转自:https://www.zhihu.com/question/50030898/answer/235137938 如何比较Keras, TensorLayer, TFLearn ? 这三个库主要 ...
- nyoj-737--石子合并(一)(动态规划)
石子合并(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆 ...
- VC6.0 设置动态链接库工程生成dll以及lib文件的位置
在"Projet"->"Settings..."的"Link"选项卡中 "Output file name"中设置 ...
- C#调用webservice(一)
最近一直在搞网络编程,这篇是关于webservice的,准备写两篇例子这篇是实现手机号码归宿地查询,下篇准备写实现机票查询. 这个网站(http://www.webxml.com.cn/zh_cn/i ...
- 【算法】Bellman-Ford算法(单源最短路径问题)(判断负圈)
单源最短路问题是固定一个起点,求它到其他所有点的最短路的问题. 算法: 设 d[i] 表示 起点 s 离点 i 的最短距离. [1.初始化] 固定起点s,对所有的点 , 如果 i = s , ...
- 【原创】ActiveMQ集群JDBC持久化
在activemq.xml中配置持久化方式: <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDa ...
- DotNetCore.1.0.1-VS2015Tools.Preview2.0.3 相关问题及解决办法
本月16号,MS发布了 .NET Core 1.1.作为一个用贯MS产品的小盆友,我第一时间就把相关的安装包下载下来了,然后果断安装(入坑). 我猜你来看这篇博客可能遇到了和我一样的问题. 问题0:正 ...
- ActiveMQ学习笔记(21)----ActiveMQ集成Tomcat
1. 监控和管理Broker Web Console 方式:直接访问ActiveMQ的管理页面:http://localhost:8161/admin,默认的用户名和密码是admin/admin.具体 ...
- 玩转HTML5移动页面(动效篇)
为一名前端,在拿到设计稿时你有两种选择: 快速输出静态页面 加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢? 这次就来谈谈一些 ...