栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1436 Horizontally Visible...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1436 Horizontally Visible...

#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;const int maxn = 20000;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1struct v_seg{    int s,t;    int x;}ss[maxn];int cover[maxn<<2];int Hash[maxn];vector<int> V[maxn];void pushdown(int rt){    if(cover[rt]!=-1){        cover[rt<<1]=cover[rt<<1|1]=cover[rt];        cover[rt]=-1;    }}void update(int L,int R,int id,int l,int r,int rt){    if(L<=l&&r<=R){        cover[rt]=id;        return ;    }    pushdown(rt);    int m=(l+r)>>1;    if(L<=m) update(L,R,id,lson);    if(R>m) update(L,R,id,rson);}void query(int L,int R,int id,int l,int r,int rt){    if(cover[rt]!=-1){        if(Hash[cover[rt]]!=id){ V[cover[rt]].push_back(id); Hash[cover[rt]]=id;        }        return ;    }    if(l==r) return ;    pushdown(rt);    int m=(l+r)>>1;    if(L<=m) query(L,R,id,lson);    if(R>m)  query(L,R,id,rson);}int cmp(v_seg a,v_seg b){    return a.x<b.x;}int main(){    int t,i,j,k,n,T,h;    scanf("%d",&T);    while(T--){        memset(cover,-1,sizeof(cover));        memset(Hash,-1,sizeof(Hash));        scanf("%d",&n);        for(i=0;i<n;i++){ scanf("%d%d%d",&ss[i].s,&ss[i].t,&ss[i].x); ss[i].s<<=1;ss[i].t<<=1;V[i].clear();        }        sort(ss,ss+n,cmp);        for(i=0;i<n;i++){ query(ss[i].s,ss[i].t,i,0,16000,1); update(ss[i].s,ss[i].t,i,0,16000,1);        }        int ans=0;         for(i=0;i<n;i++){ for(j=0;j<V[i].size();j++){      k=V[i][j];     for(t=0;t<V[i].size();t++)         for(int w=0;w<V[k].size();w++)  if(V[i][t]==V[k][w])      ans++; }        }        printf("%dn",ans);        }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369152.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号