poj2528 Mayor's posters

来源:互联网 发布:linux修改防火墙配置 编辑:程序博客网 时间:2024/06/01 09:31

        题意:一维的墙上,n个人去贴海报,海报覆盖一定的区间,后贴的可能覆盖先贴的,问最后能看到多少张海报。

        思路:线段树(区间更新)+离散化。因为墙的范围太大,n的范围小,所以需要离散化。离散化时注意如果两点不连续,需要在中间插入一个点,不然会出现bug。


#include <iostream>    #include <stdio.h>    #include <cmath>    #include <algorithm>    #include <iomanip>    #include <cstdlib>    #include <string.h>     #include <vector>    #include <queue>    #include <stack>    #include <map>  #include <set>  #include <ctype.h>    #define ll long longusing namespace std;  int pl[20010];int pr[20010];int post[40010];struct node{int l; int r;int val;bool flag;};node tree[160010];void build_tree(int n,int l,int r){tree[n].l=l; tree[n].r=r; tree[n].flag=0;if(l==r)return;int mid=(l+r)/2;build_tree(n*2,l,mid);build_tree(n*2+1,mid+1,r);}void update(int n,int l,int r,int v){if(tree[n].l==l&&tree[n].r==r){tree[n].val=v; tree[n].flag=1;return;}int mid=(tree[n].l+tree[n].r)/2;if(tree[n].flag){tree[n].flag=0;update(n*2,tree[n].l,mid,tree[n].val);update(n*2+1,mid+1,tree[n].r,tree[n].val);}if(r<=mid){update(n*2,l,r,v);}else{if(l<=mid){update(n*2,l,mid,v);update(n*2+1,mid+1,r,v);}else{update(n*2+1,l,r,v);}}}void query(int n,int l,int r){if(tree[n].flag){post[tree[n].val]=1;return;}if(l==r)return;int mid=(l+r)/2;query(n*2,l,mid);query(n*2+1,mid+1,r);}map<int,int> mp;int main(){int t;cin>>t;while(t--){memset(post,0,sizeof(post));mp.clear();int n;cin>>n;for(int i=1;i<=n;i++){scanf("%d%d",&pl[i],&pr[i]);mp[pl[i]]=1;mp[pr[i]]=1;}int cnt=1;map<int,int>::iterator last=mp.begin();for(map<int,int>::iterator it=mp.begin();it!=mp.end();it++){if(last!=it&&last->first+1<it->first)cnt++;//在不连续的点中间插入点,防止中间点被忽略it->second=cnt++;last=it;}build_tree(1,1,cnt-1);for(int i=1;i<=n;i++){update(1,mp[pl[i]],mp[pr[i]],i);}query(1,1,cnt-1);int ans=0;for(int i=1;i<cnt;i++)if(post[i])ans++;cout<<ans<<endl;}return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6岁宝宝发烧头痛怎么办 生完孩子耻骨疼怎么办 顺产底下外阴红肿伤口流脓怎么办 产后便秘怎么办什么方法最有效 一周岁宝宝拉肚怎么办 三岁宝宝拉水怎么办 喝了过期的青汁怎么办 吃了黑心的苹果怎么办 新生儿两天没拉大便怎么办 贝亲奶瓶不漏怎么办 满月婴儿吃多了怎么办 婴儿吃撑了哭闹怎么办 新生儿吃撑了怎么办啊 新生儿吃了奶粉不吃奶怎么办 新生儿不吃奶也不吃奶粉怎么办 奶瓶吸奶费力不顺畅怎么办 宝宝吃奶粉太勤怎么办 香蕉和地瓜一起吃了怎么办 贝亲奶瓶泡沫多怎么办 四个多月的宝宝拉肚子怎么办 宝宝四个月了拉肚子怎么办 四个月宝宝火大怎么办 刚出生的宝宝便秘怎么办 小宝宝破腹产吸了几口羊水怎么办 换奶粉不拉屎了怎么办 婴儿吃奶粉不拉屎怎么办 1岁半突然不喝奶怎么办 6个月宝宝不吃奶粉怎么办 7个月宝宝不吃奶粉怎么办 5个月宝宝不吃奶粉怎么办 一岁两个月宝宝不长肉怎么办 7个月宝宝肚子疼怎么办 奶喝一半凉了怎么办 5个月孩子厌奶怎么办 怀孕后特别不爱吃水果怎么办 宝宝吃了无比滴怎么办 婴儿上火怎么办吃什么可以去火 肚子胀怎么办最快的方法 40天婴儿拉水怎么办 8个月宝宝坐不稳怎么办 宝宝段奶不吃奶粉怎么办