专栏首页程序编程之旅HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)

HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)

Problem Description 杭州师范大学第29届田径运动会圆满的闭幕了,本届运动会是我校规模最大,参赛人数最多的一次运动会。在两天半时间里,由学生、教工组成的61支代表队共2664名运动员参加了比赛。比赛期间,运动健儿赛出了风格、赛出了水平,共有9人次打破6项校纪录。 我们寝室的4名同学是我班最卖力的啦啦队员,每天都在看台上为班级里的运动员们加油助威,为我班获得精神文明奖立下了汗马功劳。可是遗憾的是,与我校的其他近2万名同学一样,我们自己不能上场表演 :( 于是,我们4名同学为下一届校运会发明了一种人人都能参加的比赛项目: 在地面上有N 个大小不等的长方形陷阱,每个陷阱的周长各不相同,每个参赛者都有一个沙包,闭上眼睛把它扔向地面,如果沙包掉到了某个陷阱里,那么这个参赛者根据这个陷阱的周长长度(如50米),绕跑道跑陷阱的周长长度(如50米),如果沙包没有掉到任何一个陷阱里,那么恭喜你,你跑0米。 有m<20000个同学参加了比赛,为了给跑步跑得最多的三位同学(冠军、亚军、季军)颁发安慰奖,必须给这m个同学的跑的长度按从多到少排序。 如下图一样的坐标系与长方形,这些长方形(陷阱)的四条边都与X轴或Y轴平行,它们之间互不相交,它们的左上角顶点的坐标与右下角顶点的坐标已知,给定一个你扔出去的沙包(看作是一个点)的坐标,可以得到你要跑的距离。(注意,这里的坐标值都不超过10000)

Input 第一行是两个正整数m<20000,n<100,它表示有m 个同学参加了扔沙包比赛,有n个陷阱。 接下去m行是m个同学扔出去的沙包的坐标,每一行都是两个正整数。 接下去的n行是陷阱的坐标,每行有4个正整数,它们从左到右分别是:陷阱左下角顶点的横坐标的值、陷阱左下角顶点的纵坐标的值,陷阱右上角顶点的横坐标的值、陷阱右上角顶点的纵坐标的值。

Output m个同学按跑的距离的多少,从多到少输出,一个数字一行。

Sample Input 5 3 15 27 32 93 22 3 98 4 65 23 22 65 100 76 2 5 7 9 54 6 94 24

Sample Output 116 0 0 0 0

题目大意:给你M个同学丢的沙包位置,和N个矩形的对角坐标,对于每个同学,如果沙包在某个矩形内,则该同学跑步距离为该矩形的周长,如果没有在任何一个矩形内,则该同学跑步距离为0米,对所有同学跑步距离从大到小排序并输出。

分析:就是先比较,遍历每个陷阱,判断那个点是不是在那个陷阱中(包括边界!!!),如果在,就等于那个陷阱的周长~

这个题目坑爹的地方就是~可能有2个或着多个陷阱的边会重叠~而题目说不相交~我们只要找到了那个点首先在哪个陷阱上就可以了~break跳出循环,没必要往下找~ 我会在代码中注释~

import java.util.Arrays;
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int m =sc.nextInt();
            int n =sc.nextInt();
            int a[][] = new int[m][2];
            int b[][] = new int[n][4];
            for(int i=0;i<m;i++){
                a[i][0] = sc.nextInt();
                a[i][1] = sc.nextInt();
            }
            for(int i=0;i<n;i++){
                b[i][0] =sc.nextInt();
                b[i][1] =sc.nextInt();
                b[i][2] =sc.nextInt();
                b[i][3] =sc.nextInt();
            }
            int num[] = new int[m];
            for(int i=0;i<m;i++){
                num[i]=0;
                for(int j=0;j<n;j++){
                    if(a[i][0]>=b[j][0]&&a[i][0]<=b[j][2]&&a[i][1]>=b[j][1]&&a[i][1]<=b[j][3]){
                            num[i]=2*Math.abs( (b[j][2]-b[j][0]) )+2*Math.abs( (b[j][3]-b[j][1]) );
                            break;
                            //如果没有这个break就会WA
                            //题意出现问题!因为如果按照它说的,
//陷阱不相交,有没有这个break其实是一样的!但是事实却是没有这个break就会WA
                    }
                }
            }
            Arrays.sort(num);
            for(int i=num.length-1;i>=0;i--){
                System.out.println(num[i]);
            }

        }

    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • OJ刷题-while(scanf("%d",&n)!=EOF)

            “测试输入包含若干测试实例。当N为0时,输入结束,该实例不被处理。”这句话 是最早我对OJ的印象 以前也没见过这种输入要求, 做第一道题的时候就...

    Flaneur
  • 程序员进阶之算法练习(十一)有感而发

    前言 经过这几年的观察,我发现,国内本科高校的ACM集训队,往往汇聚着该校相对靠谱的那一批人。 拿本校举例,队内的众学长学姐毕业之后,有去国内top2的高校...

    落影
  • 2020东京奥运秘密武器曝光:AI不仅负责计时,还逼这些裁判失业!

    目前,我国的奥运健儿已经拿到了6枚金牌,2枚银牌,5枚铜牌,以13枚奖牌的总成绩位列第一。

    新智元
  • 解密在深圳首秀的英国超级机器人明星Titan

    近段时间以来,有个机器人迅速在中国大地走红,那就是英国超级机器人明星Titan,据了解,这个身高达2.4米的“地球上最大的艺人”已经确定“出席”3月30日至4月...

    机器人网
  • TCTF 2019收官 倾力打造“双一流”安全人才培养平台

    经过30小时不间断的激烈角逐,6月9日,有着“极客全明星赛”之称的第三届腾讯信息安全争霸赛(Tencent Capture The Flag,简称TCTF)在上...

    云加社区
  • 新华网生物传感智能机器人“亮相“传媒超脑论坛”

    新华网上海12月21日电(记者 刘胜男 曹素妨) 由新华网主办,新智元人工智能智库等协办的“感知未来”——首届“智能+”传媒超脑论坛12月20日在上海举办。由生...

    新智元
  • 技术菜鸟如何做出好看的奥运会奖牌榜

    2021年7月23日,第32届夏季奥运会在日本东京拉开帷幕。大赛共设置33个大项50个分项339个小项,是历届奥运会中产生金牌最多的一届 。

    数据STUDIO
  • 技术菜鸟如何做出好看的奥运会奖牌榜

    夏季奥林匹克运动会(Summer Olympic Games或Games of the Olympic)是由国际奥林匹克委员会主办的国际性多项运动赛事,每四年举...

    咋咋
  • Weblogic12c T3 协议安全漫谈

    WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件。主要用于开发、集成、部署和管理...

    Seebug漏洞平台
  • 电子科技大学田文洪:科研练就大局观 心系社会与环境

    编者按 2013年,腾讯与CCF联合发起“犀牛鸟”基金,旨在为青年学者搭建“让伟大的梦想变成现实的影响”的平台,助力青年学者的创新和成长,并为提升人类生活品质做...

    腾讯高校合作
  • 模拟退火算法从原理到实战【基础篇】

      模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达...

    Angel_Kitty
  • 专访 | 昆仑数据首席科学家田春华:人工智能降低了工业大数据分析的门槛

    机器之心
  • 资讯 | 总奖金 200 万的 AI Challenger 开赛,可申请免费 GPU 资源

    记者 | 周翔 8 月 14 日,创新工场、搜狗和今日头条联合宣布共同发起“AI Challenger 全球 AI 挑战赛”。其中,CSDN 作为选手社区,为大...

    AI科技大本营
  • 美国教育骗局:高中生活,4小时睡眠,4杯咖啡,4.0的成绩

    导读:美国记者爱德华·休姆斯,曾获最高新闻奖“普利策奖”。他花了一学年时间,在加州一所公立高中惠特尼高中“蹲点”。他在这所学校听课,和学生聊天,采访学生和老师们...

    华章科技
  • 孙正义5年“秘密实验” 寻找软银接班人

    大数据文摘
  • 微纳机器人之父福田敏男与中国不得不说的故事

    作为全球首位提倡微纳操作机器人的开拓者、领军者,“培养更好的科学家,踏实从事科研的人”,是福田敏男来到中国,除了科研之外,正在努力的事。 在电影《神奇的旅程》...

    机器人网
  • 大学生变身建筑工人:在家隔离的美国学生们,正在Minecraft中复现一座座大学校园

    据统计,美国境内确诊新冠肺炎的人数已经超过 21 万人,对于被迫离开校园回到家中的美国大学生来说,开学是一件遥遥无期的事。

    机器之心
  • 联想,寻找下一个时代的联想

    3月29日,杨元庆在中科院计算机所谈起,感慨重回梦想开始的地方,自己却早已白了鬓发。

    量子位
  • 一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?

    大刘心里不是滋味儿。老田和大刘其实在这家公司之前就是同事了,老田能到这家公司,说起来还是大刘推荐的。

    cxuan

扫码关注云+社区

领取腾讯云代金券