#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
int a[maxn];int b[maxn];int x[maxn*];int flag[maxn];
int cor[maxn<<];
int cnt=;
int trans(int num,int l,int r)
{
// int m=(l+r)>>1;
// if(num==x[m]) return m;
// if(num>x[m]) return trans(num,m+1,r);
// if(num<trans) return trans(num,l,m);
while(l<=r)
{
int m=(l+r)>>;
if(x[m]==num) return m;
if(num>x[m]) l=m+;
else r=m;
}
return -;
}
void pushdown(int rt)
{
if(cor[rt]!=-)
{
cor[rt<<]=cor[rt];
cor[rt<<|]=cor[rt];
cor[rt]=-;
}
}
void update(int a,int b,int i,int l,int r,int rt)
{
if(a<=l&&b>=r)
{
cor[rt]=i;
return;
}
pushdown(rt);
int m=(r+l)>>;
if(a<=m) update(a,b,i,lson);
if(b>m) update(a,b,i,rson);
}
void query(int l,int r,int rt)
{
if(cor[rt]!=-)
{
if(!flag[cor[rt]])
{
cnt++;
flag[cor[rt]]=;
}
return;
}
if(l==r) return;
int m=(r+l)>>;
query(lson);
query(rson);
}
int main()
{
int cases,n;
scanf("%d",&cases);
while(cases--)
{
scanf("%d",&n);
memset(cor,-,sizeof(cor));
int pointer=;
for(int i=;i<n;i++)
{
scanf("%d%d",&a[i],&b[i]);
x[pointer++]=a[i];
x[pointer++]=b[i];
}
sort(x+,x+pointer);
int pointer2=;
for(int i=;i<pointer;i++)
{
if(x[i]!=x[i-]) x[pointer2++]=x[i];
}
for(int i=pointer2-;i>=;i--)
{
if(x[i]!=x[i-]+) x[pointer2++]=x[i-]+;
}
sort(x,x+pointer2);
for(int i=;i<n;i++)
{
int l=trans(a[i],,pointer2-);
int r=trans(b[i],,pointer2-);
update(l,r,i,,pointer2-,);
}
cnt=;
memset(flag,,sizeof(flag));
query(,pointer2-,);
printf("%d\n",cnt);
}
return ;
}

poj 2528 poster经典线段树+lazy+离散化的更多相关文章

  1. POJ 2777——线段树Lazy的重要性

    POJ 2777 Count Color --线段树Lazy的重要性 原题 链接:http://poj.org/problem?id=2777 Count Color Time Limit: 1000 ...

  2. ACM/ICPC 之 数据结构-线段树+区间离散化(POJ2528)

    这道题用线段树做更方便更新和查询,但是其数据范围很大,因此要将离散化和线段树结合起来,算是一道比较经典的线段树+离散化的例题. 线段树的离散化有很多方法,在这里,我先用一次结点离散化,间接将源左右端点 ...

  3. JuQueen(线段树 lazy)

    JuQueen Time Limit: 5 Sec  Memory Limit: 512 MB Description Input Output Sample Input 10 10 5 state ...

  4. ZOJ - 1610 经典线段树染色问题

    这个是一个经典线段树染色问题,不过题目给的是左右左右坐标,即[0,3]包含0-1这一段 1-2这一段 2-3这一段,和传统的染色不太一样,不过其实也不用太着急. 我们把左边的坐标+1,即可,那么[0, ...

  5. hdu1542 Atlantis (线段树+扫描线+离散化)

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  6. 分块+lazy 或者 线段树+lazy Codeforces Round #254 (Div. 2) E

    E. DZY Loves Colors time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. POJ 2528 Mayor's posters 【区间离散化+线段树区间更新&&查询变形】

    任意门:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  8. poj 2528 (线段树+特殊离散化)

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 51098   Accepted: 14788 ...

  9. Mayor's posters POJ - 2528 线段树(离散化处理大数?)

    题意:输入t组数据,输入n代表有n块广告牌,按照顺序贴上去,输入左边和右边到达的地方,问贴完以后还有多少块广告牌可以看到(因为有的被完全覆盖了). 思路:很明显就是线段树更改区间,不过这个区间的跨度有 ...

随机推荐

  1. JavaScript中的设计模式:单例模式

    定义 单例模式就是一个类只能实例化一个对象,并且提供了一个访问它的全局访问点. 一般在实现登陆框,或者一个全局的控制器都会用到单例模式.现实中有window对象,线程池,全局缓存等. 简单实现 var ...

  2. maven-配置文件配置src/resource下的文件

    classpath*:只找到applicationContext.xml classpath:/找到了所有

  3. CAP 介绍及使用【视频】

    前言 很多同学可能对于CAP这个项目想有更一步的了解,包括她的工作原理以及适用的场景,所以博主就准备了一场直播给他家讲解了一下,这个视频是直播的一个录像. 由于我这次直播本来是没有打算对外的,所以也是 ...

  4. 【SignalR学习系列】3. SignalR实时高刷新率程序

    创建项目 创建一个空的 Web 项目,并在 Nuget 里面添加 SignalR,jQuery UI 包,添加以后项目里包含了 jQuery,jQuery.UI ,和 SignalR 的脚本. 创建基 ...

  5. Java映射

    1.Student类 package com.zdsofe.javaweb.lianxi1; public class Student { public String stuName; private ...

  6. 26. leetcode 350. Intersection of Two Arrays II

    350. Intersection of Two Arrays II Given two arrays, write a function to compute their intersection. ...

  7. nginx的平滑升级

    一:解释nginx的平滑升级 随着nginx越来越流行,并且nginx的优势也越来越明显,nginx的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如stream四层代理功能, ...

  8. JS 无法清除Cookie的解决方法

    JS 无法清除Cookie的解决方法   项目中使用sdmenu.js时,需要在登录时清除Cookie,而sdmenu默认是会保存Cookie的 下面是sdmenu.js保存Cookie的方法 doc ...

  9. 从用eclipse还是idea所想到的

    最近一直在用idea做开发,刚开始用起来还是不熟,毕竟上次用idea还是研三在某知名互联网实习的时候,在学校和上家公司都用的是eclipse,然后就想,为什么有的公司用eclipse,有的公司用ide ...

  10. java实现网页爬虫

    接着上面一篇对爬虫需要的java知识,这一篇目的就是在于网页爬虫的实现,对数据的获取,以便分析. -----> 目录:   1.爬虫原理 2.本地文件数据提取及分析 3.单网页数据的读取 4.运 ...