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. 使用LuaInterface遇到的编码问题

    今天使用LuaInterface加载脚本时忽然报“未知字符”错误信息!于是检查文件编码 将其修改为“US ASCII” 就好了.

  2. html复选框多行排列布局

    前言:写这篇文章,主要是在于总结一下自己的心得体会... 公司的产品需要实现操作权限配置,我们实现的方式是,左边是“产品”=>“模块”树,右边是由“菜单”和“按钮”复选框按钮.如下图:

  3. Oracle数据库学习 视图、序列及存储过程

    视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...

  4. js--Ajax的小知识(二):处理ajax的session过期的请求

    问题的产生: 现如今Ajax在Web项目中应用广泛,几乎可以说无处不在. 有时会碰到这样个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax ...

  5. shell脚本学习之Bash shell 里各种括号的用法

    今天在 SegmentFault 上看到又有人问起关于Shell里各种括号的问题.对于很多玩Shell的人,括号是个很尴尬的问题,用起来没问题,说起来不明白,我在这里总结一下Bash Shell几种括 ...

  6. 类库探源——System.Exception

    一.MSDN描述 Exception 类: 表示在应用程序执行期间发生的错误 命名空间 : System 程序集:   mscorlib.dll 继承关系: 常用属性(含字段)和方法: 1. 属性Me ...

  7. ZOJ 2432 Greatest Common Increasing Subsequence(最长公共上升子序列+路径打印)

    Greatest Common Increasing Subsequence 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problem ...

  8. C++学习笔记-1-自增和自减运算符

    1. post-increment and pre-increment 的区别 来源:http://www.c4learn.com/c-programming/c-increment-operator ...

  9. 手机定位原理 - GPS/GLONASS/北斗 + WIFI + 基站

    卫星定位系统 - GPS/GLONASS/北斗: 关于GPS.GLONASS.北斗.伽利略系统的科普请自行谷歌. GPS是使用最广泛的全球定位网络,几乎是所有智能手机的标配.进几年,俄罗斯的GLONA ...

  10. Python核心编程2第三章课后练习

    1. 标识符.为什么Python 中不需要变量名和变量类型声明? Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程.每个变量在内存中创建,都包括变量的标识,名称和数据这些信息.每 ...