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]);
} } } }

HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)的更多相关文章

  1. hdu 2555

    Problem Description 杭州师范大学第29届田径运动会圆满的闭幕了,本届运动会是我校规模最大,参赛人数最多的一次运动会.在两天半时间里,由学生.教工组成的61支代表队共2664名运动员 ...

  2. HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)

    HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解) 题意分析 要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上. 代码总览 #in ...

  3. HDOJ(HDU).1864 最大报销额 (贪心)

    HDOJ(HDU).1864 最大报销额 题意分析 题目有点问题,原题中说的 单项物品的价值不得超过600元 应该是单类物品的价值不能超过600元. 一开始以为是01背包,后来按贪心写过了. 一张一张 ...

  4. HDOJ(HDU).2660 Accepted Necklace (DFS)

    HDOJ(HDU).2660 Accepted Necklace (DFS) 点我挑战题目 题意分析 给出一些石头,这些石头都有自身的价值和重量.现在要求从这些石头中选K个石头,求出重量不超过W的这些 ...

  5. HDOJ(HDU).1025 Constructing Roads In JGShining's Kingdom (DP)

    HDOJ(HDU).1025 Constructing Roads In JGShining's Kingdom (DP) 点我挑战题目 题目分析 题目大意就是给出两两配对的poor city和ric ...

  6. HDOJ(HDU).1258 Sum It Up (DFS)

    HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双 ...

  7. HDOJ(HDU).1016 Prime Ring Problem (DFS)

    HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...

  8. HDOJ(HDU).1015 Safecracker (DFS)

    HDOJ(HDU).1015 Safecracker [从零开始DFS(2)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1 ...

  9. 人人都是 DBA(XII)查询信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

随机推荐

  1. [弹出消息] C#MessageBox帮助类 (转载)

    点击下载 MessageBox.rar 主要功能如下所示1.显示消息提示对话框 2.控件点击 消息确认提示框 3.显示消息提示对话框,并进行页面跳转 4.输出自定义脚本信息 /// <summa ...

  2. oracle学习笔记2:创建修改表

    1.创建表 CREATE TABLE ORDERINFO ( ORDERID NUMBER(*, 0) NOT NULL , ORDERCODE VARCHAR2(20 BYTE) NOT NULL ...

  3. [Twisted] transport

    transport代表网络上两个节点的连接.它描述了连接的具体细节,如TCP还是UDP. transports实现了ITransport接口,包含以下方法 write:以非阻塞的方式向连接写数据. w ...

  4. OC - 13.数据解析(JSON与XML)

    ##数据交互格式 服务器返回给用户的数据,通常是以下两种方式: JSON XML JSON 一种轻量级的数据数据格式,体积比XML小,是服务器返回给移动端通常采用的格式 用使用JSON文件中的数据,需 ...

  5. 一、C# 概述

    1.托管执行环境 2.程序集 3.关键字:C#保留字 4.除了C#定义的关键字之外,开发者可以提供他们自己的名称,编程语言将这些名称称为标识符 5.如果关键字包含一个"@"前缀,那 ...

  6. [转载] java中byte数组与int,long,short间的转换

    文章转载自http://blog.csdn.net/leetcworks/article/details/7390731 package com.util; /** * * <ul> * ...

  7. Mindjet MindManager 2012 从模板创建出现“Runtime Error pure virtual function call” 解决方法

    我的Mindjet MindManager 2012 Pro也就是MindManager10 在应用模板之后总会显示 Microsoft Visual C++ Runtime Library Runt ...

  8. 在 Sublime Text 3 中运行 PHP

    参考http://segmentfault.com/blog/tony/1190000000395951 把php添加到环境变量 1.我的电脑->属性->高级系统设置->高级-> ...

  9. Apache .htaccess Rewrite解决问号匹配的写法

    如news.asp?id=123 需要把它定向到 news/123.html 这个用 RewriteRule 怎么写啊? RewriteRule ^news\.asp\?id=(\d+)$ news/ ...

  10. WPF之application对象

    WPF:Application简介 Application是一个地址空间,在WPF中应用程序就是在System.Windows命名空间下的一个Application实例.一个应用程序只能对应一个App ...