#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. MVC MVC+EF快速搭建

    MVC+EF快速搭建 一.准备: vs2017(个人用的) 二.开始MVC+EF之旅吧: 1.创建mvc项目: Web-ASP.NET Web Application(.NET Framework)  ...

  2. .net 自动摘要等算法 HanLP.net

    参考资料: http://www.hankcs.com/nlp/call-hanlp-in-csharp.html 目前自动摘要算法似乎没有.net 版本,而以java,python 居多 自动摘要算 ...

  3. IDEA+Java:Selenium+Maven+TestNG基本WebUI自动化测试环境搭建

    IDEA+java:Selenium+Maven+TestNG 本文介绍的测试环境,应该是最基本的测试环境了,也是很多文章都有写,这里做一个完整的图文配置整理,方便阅读理解! 使用maven的好处,由 ...

  4. 如何使用命令行cmd执行java程序

    如果你的电脑上没有像idea eclipse这类的IDE,但是因为工作需要必须要执行java代码怎么办呢? 这个时候就需要使用电脑最原始的执行方式 既命令行 1:首先你得安装了jdk与jre (这里就 ...

  5. centos下编译安装Openssl

    yum install -y zlib*mkdir /datacd /data下载好tar包tar zxf openssl-1.0.2g.tar.gzcd openssl-1.0.2g./config ...

  6. attr(),addClass()使用方法练习

    这次我主要是想要完成2个li之间样式的变化.方法比较傻,如果有人有更好的办法或者有别问题,希望可以不吝指教. <!DOCTYPE html><html> <head> ...

  7. git分支管理之解决冲突

    人生不如意之事十之八九,合并分支往往也不是一帆风顺的. 准备新的feature1分支,继续我们的新分支开发: $ git checkout -b feature1 Switched to a new ...

  8. JavaScript数组遍历(迭代)方法 8种

    最近工作中经常涉及到数据的处理,数组尤其常见,经常需要对其进行遍历.转换操作,网上的文章零零散散,不得已自己又找出红宝书来翻出来看,顺便记一笔,便于以后查询. 数组常用的方法 ECMAScript5为 ...

  9. Selenium+java操作浏览器cookies

    描述:登录CSDN,将登录信息cookies保存到文件,再次打开网页时,直接利用文件中的数据登录. 1. 获取cookies并保存到文件 步骤: ① 打开CSDN的登录界面: ② 填写用户名和密码: ...

  10. swift3.0 UITableView侧滑支持多选项

    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableVie ...