poj 2528 Mayor's posters
2013-08-02 15:53
309 查看
l链接;点击打开链接
给一墙贴海报,求的是最后还可以看见好多张海报。。。
由于数据很大,我们要用到离散化,区间覆盖,跟涂颜色差不多,就是求墙上还可以看到多少种颜色。
给一墙贴海报,求的是最后还可以看见好多张海报。。。
由于数据很大,我们要用到离散化,区间覆盖,跟涂颜色差不多,就是求墙上还可以看到多少种颜色。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 20100 struct node1{ int x; int y; }a[N*2]; struct node2{ int l; int r; int num; }anode[4*N]; int vis ,map [2],ans; int cmp(node1 a,node1 b){ return a.x<b.x; } void bulid(int l,int r,int n){ int mid; mid=(l+r)>>1; anode .l=l; anode .r=r; anode .num=0; if(l==r) return; bulid(l,mid,2*n); bulid(mid+1,r,2*n+1); } void insert(int l,int r,int n,int c){ int mid; mid=(anode .l+anode .r)>>1; if(anode .l==l&&anode .r==r){ anode .num=c; return; } if(anode .num>0){ anode[2*n].num=anode .num; anode[2*n+1].num=anode .num; anode .num=0; } if(r<=mid) insert(l,r,2*n,c); else if(l>mid) insert(l,r,2*n+1,c); else{ insert(l,mid,2*n,c); insert(mid+1,r,2*n+1,c); } } void query(int n){ if(anode .num!=0){ if(!vis[anode .num]){ ans++; vis[anode .num]=1; } return; } query(2*n); query(2*n+1); return; } int main(){ int i,c,n,count,temp; scanf("%d",&c); while(c--){ scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d %d",&map[i][0],&map[i][1]); a[2*i].x=map[i][0]; a[2*i].y=-(i+1); a[2*i+1].x=map[i][1]; a[2*i+1].y=i+1; } sort(a,a+2*n,cmp); temp=a[0].x; count=1; for(i=0;i<2*n;i++){ if(temp!=a[i].x){ count++; temp=a[i].x; } if(a[i].y<0) map[-a[i].y-1][0]=count; else map[a[i].y-1][1]=count; } bulid(1,count,1); for(i=0;i<n;i++) insert(map[i][0],map[i][1],1,i+1); memset(vis,0,sizeof(vis)); ans=0; query(1); printf("%d\n",ans); } return 0; }
相关文章推荐
- 线段树区间更新,区间统计+离散化 POJ 2528 Mayor's posters
- Poj 2528 Mayor's posters
- POJ 2528 Mayor's posters(离散化线段树)
- POJ 2528 Mayor's posters
- POJ - 2528 Mayor's posters(线段树)
- POJ_2528_Mayor's posters
- Poj 2528 Mayor's posters
- poj 2528 Mayor's posters
- POJ 2528 Mayor's posters(线段树离散化)
- POJ 2528 Mayor's posters 题解
- POJ 2528 Mayor's posters(离散化 + 线段树)
- POJ 2528 Mayor's posters
- poj 2528 Mayor's posters(线段树,离散化,成段更新染色)
- POJ 2528 Mayor's posters(成段更新)
- poj 2528 Mayor's posters(数据结构:线段树+离散化)
- POJ 2528 Mayor's posters(离散化 线段树 贴海报)
- POJ 2528-Mayor's posters(线段树区间染色+离散化)
- POJ 2528 Mayor's posters(区间更新 + 离散化)
- POJ 2528 Mayor's posters(线段树染色+离散化)
- poj 2528 Mayor's posters