zoukankan      html  css  js  c++  java
  • Uva 221 Urban Elevations

    uva 221

    提供个房子的坐标以及房子宽度和高度,要求你求从南边看过去,可以看到的房子有哪些

    PS:一定要注意题目的这句:One blank line must separate output from consecutive input records.不然会直接报错

    可以直接使用暴力做,不过要注意枚举方式,在无序的情况下直接考虑每个房子对正研究的房子的影响显然是不现实的,因为可能有房子刚好当前边一部分,或中间一部分,或后面一部分,这个不好统一,所以事先排序能明确统计

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cstring>
    #define M(a) memset(a,0,sizeof(a))
    using namespace std;
    
    struct house
    {
        int id,x,y,w,d,h,vis;
        bool operator < (const house & a) const
        {
            if(x!=a.x)
                return x<a.x;
            return y<a.y;
        }
    }eve[111];
    
    int main()
    {
        int n;int ca=1;
        while(cin>>n,n!=0)
        {
            if(ca-1) cout<<"
    ";
            M(eve);
            for(int i=0;i<n;i++)
            {
                cin>>eve[i].x>>eve[i].y>>eve[i].w>>eve[i].d>>eve[i].h;
                eve[i].id=i+1;
            }
            sort(eve,eve+n);
            for(int i=0;i<n;i++)
            {
                int tem=eve[i].x;
                for(int j=0;j<n;j++)
                {
                    if(eve[j].y>=eve[i].y) continue;
                    if(eve[j].x>eve[i].x+eve[i].w) continue;
                    if(eve[j].x+eve[j].w<eve[i].x) continue;
                    if(eve[j].h<eve[i].h) continue;
                    if(eve[j].x>tem) {continue;}
                    tem=max(tem,eve[j].x+eve[j].w);
                }
                if(tem>=eve[i].x+eve[i].w) eve[i].vis=1;
            }
            printf("For map #%d, the visible buildings are numbered as follows:
    ",ca++);
            int first=0;
            for(int i=0;i<n;i++)
            {
                if(eve[i].vis) continue;
                if(first++) cout<<" ";
                cout<<eve[i].id;
            }
            puts("");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    【Java】XML文件的解析
    PE知识复习之PE合并节
    PE知识复习之PE的重定位表
    PE知识复习之PE的两种状态
    PE知识复习之PE的节表
    PE知识复习之PE的各种头属性解析
    PE知识复习之PE的导入表
    PE知识复习之PE的导出表
    PE知识复习之PE的绑定导入表
    第三讲扩展,VA,RVA,FA(RAW),模块地址的概念
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/4969295.html
Copyright © 2011-2022 走看看