#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. 图像处理与matlab实例之图像平滑(一)

    一.何为图像噪声?噪声是妨碍人的感觉器官所接受信源信息理解的因素,是不可预测只能用概率统计方法认识的随机误差. 举个例子: 从这个图中,我们可以观察到噪声的特点:1>位置随机 2>大小不规 ...

  2. Mybatis JPA 代码构建

    前段时间了解到Spring JPA,感觉挺好用,但其依赖于Hibernate,本人看到Hibernate就头大(不是说Hibernate不好哈,而是进阶太难),于是做了一个迷你版的Mybatis JP ...

  3. Windows远程linux服务器执行shell命令

    一.前言 借用百度百科关于putty的描述:PuTTY是一个Telnet.SSH.rlogin.纯TCP以及串行接口连接软件.较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台 ...

  4. 有点难度的JS面试题

    自己总结了一些JS面试题 希望能够帮助正在找工作的程序猿(●´∀`●) 1.js 实现一个函数对javascript中json 对象进行克隆 var oldObject ="sdf" ...

  5. 【css】盒子模型 之 概述

    摘要 一些基本的概念以及常见使用问题 概述 BFC 是css 中布局的核心 - 盒模型,根据块级元素及行级元素可分为块级容器, 行级容器,但容器内部都遵循 BFC BFC 空间布局 备注: IE 的盒 ...

  6. 【javascript】继承

    1. js 其实是一个非面向对象的语言,通过对象的深浅复制完成继承 2. 继承方法 继承的方法有两种 1)prototype 原型模式 举个例子 var Animal = function () { ...

  7. Web测试与APP测试有哪些异同?

    1.相同点 不管是传统行业的web测试,还是新兴的手机APP测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等 ...

  8. Eclipse常用快捷键大全

    1.ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母

  9. 调皮的QQ音乐API:修复无法获取歌单

    上一篇完整版:http://www.cnblogs.com/TwilightLemon/p/7076938.html QQ音乐的API真是太调皮了,获取歌单的API又更换了好多次,喵喵喵 旧版API( ...

  10. python爬取百度搜索结果ur汇总

    写了两篇之后,我觉得关于爬虫,重点还是分析过程 分析些什么呢: 1)首先明确自己要爬取的目标 比如这次我们需要爬取的是使用百度搜索之后所有出来的url结果 2)分析手动进行的获取目标的过程,以便以程序 ...