标签:
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