CSP 201912-2 回收站选址 Java 满分
程序员文章站
2022-08-17 23:14:30
import java.util.*;public class Main { public static void main(String[] args) { LinkedHashSet points = new LinkedHashSet(); //存储输入的垃圾点 HashSet condition1 = new HashSet(); //存......
import java.util.*;
public class Main {
public static void main(String[] args) {
LinkedHashSet<Point> points = new LinkedHashSet<Point>(); //存储输入的垃圾点
HashSet<Point> condition1 = new HashSet<Point>(); //存储某个垃圾点上下左右位置垃圾点
HashSet<Point> condition2 = new HashSet<Point>(); //存储某个垃圾点四个对焦位置垃圾点
int[] num = new int[5]; //存储得分的数组
int flag = 0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//输入垃圾点,并存入points中
for (int i = 0; i < n; i++) {
int tempX = sc.nextInt();
int tempY = sc.nextInt();
points.add(new Point(tempX, tempY));
}
//创建垃圾点的迭代器
Iterator<Point> iterator = points.iterator();
while (iterator.hasNext()) {
flag = 0;//表示得分数
//迭代每个垃圾点时,重置存储此垃圾点周围垃圾点的Set
condition1.clear();
condition2.clear();
Point p = iterator.next();
//创建此垃圾点上下左右位置的垃圾点,并存入condition1中
condition1.add(new Point(p.x + 1, p.y));
condition1.add(new Point(p.x - 1, p.y));
condition1.add(new Point(p.x, p.y + 1));
condition1.add(new Point(p.x, p.y - 1));
//判断此垃圾点是否包含上下左右垃圾点
if (points.containsAll(condition1)) {
//创建此垃圾点四个对角位置的垃圾点,并存入condition2中
condition2.add(new Point(p.x + 1, p.y + 1));
condition2.add(new Point(p.x - 1, p.y - 1));
condition2.add(new Point(p.x - 1, p.y + 1));
condition2.add(new Point(p.x + 1, p.y - 1));
Iterator<Point> iteratorCon = condition2.iterator();
while (iteratorCon.hasNext()) {
Point point = iteratorCon.next();
if (points.contains(point)) {
flag++;
}
}
} else {
continue;
}
num[flag]++;
}
for (int i = 0; i < 5; i++) {
System.out.println(num[i]);
}
}
}
class Point {
int x;
int y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Point point = (Point) o;
return x == point.x &&
y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
}
本文地址:https://blog.csdn.net/Mrwyx/article/details/110495857
上一篇: 55分钟学会正则表达式
下一篇: 正则表达式——匹配规则介绍