http://poj.org/problem?id=2528

这个题有个细节,整个区间的长度为10000000,而n最大只有1000,所以我们要进行离散化。

 #include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 10010
using namespace std; bool tab[maxn];
int l[maxn],r[maxn],x[maxn*],num[maxn*],tree[maxn*];
int c,n; int binary_search1(int sum)
{
int l=,r=*n;
while(l<=r)
{
int mid=(l+r)/;
if(x[mid]<=sum)
l=mid+;
else
r=mid-;
}
return num[r];
} void update(int i)
{
if(!tree[i])
return ;
tree[i+i]=tree[i+i+]=tree[i];
tree[i]=;
}
void change(int tl,int tr,int l,int r,int i,int co)
{
if(tl>r||tr<l) return ;
if(tl<=l&&r<=tr)
{
tree[i]=co;
return ;
}
update(i);
int mid=(l+r)/;
change(tl,tr,l,mid,i+i,co);
change(tl,tr,mid+,r,i+i+,co);
}
int require(int l,int r,int i)
{
int mid=(l+r)/;
if(tree[i])
{
if(!tab[tree[i]])
{
tab[tree[i]]=;
return ;
}
return ;
}
if(l==r)
return ;
return require(l,mid,i+i)+require(mid+,r,i+i+);
}
void init()
{
scanf("%d",&n);
for(int i=; i<=n; i++)
{
scanf("%d%d",l+i,r+i);
x[i*-]=l[i];x[i*-]=r[i];x[i*]=(l[i]+r[i])/;
}
sort(x+,x+*n+);
memset(num,,sizeof(num));
for(int i=; i<=*n; i++)
{
num[i]=num[i-];
if(x[i]!=x[i-]) num[i]++;
}
for(int i=; i<=n; i++)
{
l[i]=binary_search1(l[i]);
r[i]=binary_search1(r[i]);
}
} void solve()
{
memset(tree,,sizeof(tree));
for(int i=; i<=n; i++)
{
change(l[i],r[i],,*n,,i);
}
memset(tab,,sizeof(tab));
int ans=require(,*n,);
printf("%d\n",ans);
} int main()
{
scanf("%d",&c);
while(c--)
{
init();
solve();
}
return ;
}

poj 2528Mayor's posters的更多相关文章

  1. Poj 2528-Mayor's posters 线段切割

      题目:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total ...

  2. POJ - 2528Mayor's posters (离散化+线段树区间覆盖)

    The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign h ...

  3. POJ 2528 Mayor's posters

    Mayor's posters Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub ...

  4. POJ 2528 Mayor's posters(线段树+离散化)

    Mayor's posters 转载自:http://blog.csdn.net/winddreams/article/details/38443761 [题目链接]Mayor's posters [ ...

  5. poj 2528 Mayor's posters(线段树+离散化)

    /* poj 2528 Mayor's posters 线段树 + 离散化 离散化的理解: 给你一系列的正整数, 例如 1, 4 , 100, 1000000000, 如果利用线段树求解的话,很明显 ...

  6. POJ 2528 Mayor's posters(线段树区间染色+离散化或倒序更新)

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

  7. poj 2528 Mayor's posters 线段树+离散化技巧

    poj 2528 Mayor's posters 题目链接: http://poj.org/problem?id=2528 思路: 线段树+离散化技巧(这里的离散化需要注意一下啊,题目数据弱看不出来) ...

  8. POJ 2528 - Mayor's posters - [离散化+区间修改线段树]

    题目链接:http://poj.org/problem?id=2528 Time Limit: 1000MS Memory Limit: 65536K Description The citizens ...

  9. POJ:2528(Mayor's posters)离散化成段更新+简单哈希

    http://poj.org/problem?id=2528 Description The citizens of Bytetown, AB, could not stand that the ca ...

随机推荐

  1. jEdit应用指南【基础篇】

    jEdit是Java编写,强大,易用的程序员文本编辑器 jEdit是一个成熟的,设计优秀的程序员文本编辑器,已经有了7年的开发历史.在功能和易用性方面压倒许多昂贵的开发工具时,jEdit在GNU公用许 ...

  2. Unity3D NGUI制作进度条

    利用GUI可以制作进度条,但是NGUI更加方便 我是用的NGUI3.5.3, 先找到NGUI  Slider的预制体,利用自带的UISlider来制作. 主要是利用UISlider的Value来控制进 ...

  3. Demo_塔防(自动生成怪物,导航,炮塔攻击,怪物掉血死忙)

    using UnityEngine; using System.Collections; public struct WaveMsg { //该波次生成的怪物 public GameObject mo ...

  4. FFmpeg的HEVC解码器源码简单分析:解析器(Parser)部分

    ===================================================== HEVC源码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpeg ...

  5. [转] JavaScript中的字符串操作

    一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供 ...

  6. instancetype vs id for Objective-C

    instancetype: 使用 instancetype 编译器和IDE 会做类型检查,而id不会做完整的类型检查. A method with a related result type can ...

  7. meta标签的含义

    <meta http-equiv="imagetoolbar" content="false" /> 定是否显示图片工具栏,当为false代表不显示 ...

  8. 阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具)

    继前面介绍过ICON-FONT的制作后,找了几个ICON库都是国外的今天偶然发现阿里巴巴的图标矢量库,www.iconfont.cn用了之后感觉很强大,丰富的图标库(集合阿里妈妈&淘宝的图标库 ...

  9. (转)ThinkPHP自定义模板标签详解

    转之--http://www.thinkphp.cn/topic/6258.html 模板标签让网站前台开发更加快速和简单,这让本该由程序猿才能完成的工作,现在只要稍懂得HTM的人也能轻易做到,这也就 ...

  10. iOS开发 UITableView之cell

    1.cell简介 UITableView的每一行都是一个UITableViewCell,通过dataSource的tableView:cellForRowAtIndexPath:方法来初始化每一行 U ...