zoukankan      html  css  js  c++  java
  • HDU 2555 陷阱(模拟,结构体数组)

    这道题目意思很明白,有不确定的数据沙包和陷阱,还要排序···那就必须要用结构体+数组

      

    /*
    在地面上有N 个大小不等的长方形陷阱,每个陷阱的周长各不相同,每个参赛者都有一个沙包,闭上眼睛把它扔向地面,
    如果沙包掉到了某个陷阱里,那么这个参赛者根据这个陷阱的周长长度(如50米),绕跑道跑陷阱的周长长度(如50米)
    如果沙包没有掉到任何一个陷阱里,那么恭喜你,你跑0米。
    有m<20000个同学参加了比赛,为了给跑步跑得最多的三位同学(冠军、亚军、季军)颁发安慰奖,
    必须给这m个同学的跑的长度按从多到少排序。
    如下图一样的坐标系与长方形,这些长方形(陷阱)的四条边都与X轴或Y轴平行,
    它们之间互不相交,它们的左上角顶点的坐标与右下角顶点的坐标已知,
    给定一个你扔出去的沙包(看作是一个点)的坐标,可以得到你要跑的距离。(注意,这里的坐标值都不超过10000)
    */
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<cmath>
    #include<algorithm>
    int cmp(const void *a,const void *b)
    {
    	return *(int *)b-*(int *)a;
    }
    
    /*typedef*/ struct point{
        int x,y;
    }p[20010];
    
    /*typedef */struct tou{
        int x1,x2,y1,y2;
        int zc;
    }t[105];
    /*typedef struct note{  //另一种结构体数组定义法
        int x,y;  
    }Note;  
      
    typedef struct t{  
        int x1,x2,y1,y2;  
        int data;  
    }T;  
    T a[105];  
      
    Note b[20005];        //落点  
      
    int c[20005];         //陷阱 
    */
    using namespace std;
    int main()
    {
        int c[20010];
        int m,n;
        int x,y;
        int x1,y1,x2,y2;
        int i,j;
        //int c=0;
        scanf("%d%d",&m,&n);//m:同学数量 n:陷阱数量
        memset(c,0,sizeof(c));
        for(i=0;i<m;i++)
        {
            scanf("%d%d",&p[i].x,&p[i].y);
        }
    
        for(j=0;j<n;j++)
        {
            scanf("%d%d%d%d",&t[j].x1,&t[j].y1,&t[j].x2,&t[j].y2);
            t[j].zc=2*((t[j].x2-t[j].x1)+(t[j].y2-t[j].y1));
        }
    
        for(i=0;i<m;i++)
        {
            for(j=0;j<n;j++)
            {
                if(p[i].x>=t[j].x1&&p[i].x<=t[j].x2&&p[i].y>=t[j].y1&&p[i].y<=t[j].y2)
                {
                    c[i]=t[j].zc;
                    break;
                }
            }
        }
        qsort(c,m,sizeof(c[0]),cmp);
        for(i=0;i<m;i++)
        {
            printf("%d
    ",c[i]);
        }
    }
    

      

  • 相关阅读:
    七类网线 支持10gb/s的速度的计算方法
    Linux 压缩 解压缩 命令相关
    [至顶网] Win2019 发布 LTSC 10年支持期
    安装报错信息 改天找人帮忙看下.
    [学习]仿照cnblog 搭建 Oracle RAC 双节点 困.. 后续做不下去了..
    Windows 作为 openssl server端时的处理
    阿里云构建Kafka单机集群环境
    nginx解决跨域
    让网站永久拥有HTTPS
    ORA-01940: cannot drop a user that is currently connected 问题解析
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7207533.html
Copyright © 2011-2022 走看看