标签:
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 49564 | Accepted: 14361 |
Description
Input
Output

Sample Input
1 5 1 4 2 6 8 10 3 4 7 10
Sample Output
4
Source
Alberta Collegiate Programming Contest 2003.10.18
ac代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
struct s
{
int l,r,cover;
}node[10010<<4];
struct ss
{
int l,r;
}post[10010];
int a[20020],hash[10000010],flag[20020];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
void build_tr(int l,int r,int tr)
{
node[tr].l=l;
node[tr].r=r;
node[tr].cover=-1;
if(r==l)
return;
int mid=(l+r)>>1;
build_tr(l,mid,tr<<1);
build_tr(mid+1,r,tr<<1|1);
}
void insert(int L,int R,int l,int r,int c,int tr)
{
if(L<=l&&r<=R)
{
node[tr].cover=c;
return;
}
if(node[tr].cover!=-1)
{
node[tr<<1].cover=node[tr<<1|1].cover=node[tr].cover;
node[tr].cover=-1;
}
int mid=(l+r)>>1;
if(L<=mid)
insert(L,R,l,mid,c,tr<<1);
if(R>mid)
insert(L,R,mid+1,r,c,tr<<1|1);
}
/*void insert(int L,int R,int l,int r,int c,int tr)
{
if(L==l&&r==R)
{
node[tr].cover=c;
return;
}
if(node[tr].cover!=-1)
{
node[tr<<1].cover=node[tr<<1|1].cover=node[tr].cover;
node[tr].cover=-1;
}
int mid=(l+r)>>1;
if(L>mid)
{
insert(L,R,mid+1,r,c,tr<<1|1);
}
else
if(R<=mid)
{
insert(L,R,l,mid,c,tr<<1);
}
else
{
insert(L,mid,l,mid,c,tr<<1);
insert(mid+1,R,mid+1,r,c,tr<<1|1);
}
}*/
void count(int l,int r,int tr)
{
if(node[tr].cover>=0)
{
flag[node[tr].cover]=1;
return;
}
if(l==r)
return;
int mid=(r+l)>>1;
count(l,mid,tr<<1);
count(mid+1,r,tr<<1|1);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int i,cnt=0;
for(i=0;i<n;i++)
{
scanf("%d%d",&post[i].l,&post[i].r);
a[cnt++]=post[i].l;
a[cnt++]=post[i].r;
}
qsort(a,cnt,sizeof(a[0]),cmp);
cnt=unique(a,a+cnt)-a;
for(i=0;i<cnt;i++)
{
hash[a[i]]=i;
}
build_tr(0,cnt-1,1);
int ans=0;
for(i=0;i<n;i++)
{
insert(hash[post[i].l],hash[post[i].r],0,cnt-1,i,1);
}
memset(flag,0,sizeof(flag));
count(0,cnt-1,1);
for(i=0;i<n;i++)
{
if(flag[i])
ans++;
}
printf("%d\n",ans);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
POJ 题目2528 Mayor's posters(线段树+离散化)
标签:
原文地址:http://blog.csdn.net/yu_ch_sh/article/details/47168255