【CCF】202009-1 称检测点查询(Java实现)
程序员文章站
2024-01-20 15:49:04
【CCF】201609-2火车购票(Java实现)欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用......
【CCF】202009-1 称检测点查询(Java实现)
试题编号: 202009-1
试题名称: 称检测点查询
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
样例输入1
3 2 2
2 2
2 3
2 4
样例输出1
1
2
3
样例输入2
5 0 1
-1 0
0 0
1 0
0 2
-1 2
样例输出2
2
4
1
思路
1.计算每一个检测点的距离
2.找出最近的三个检测点的编号
(困难在于,如何找出检测点及其对应编号)
解决思路如下:循环遍历三次存放距离的数组,找到最小的距离,输出编号,并将其值设置为Integer.MAX_VALUE,循环三次即可。
代码
import java.util.Scanner;
public class one_19 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int x = sc.nextInt();
int y = sc.nextInt();
int [] d = new int[n];
for (int i = 0; i < n; i++) {
int x1 = sc.nextInt();
int y1 = sc.nextInt();
d[i] = (x-x1)*(x-x1)+(y-y1)*(y-y1);
}
int [] treemin = new int[3];
treemin[0] = Integer.MAX_VALUE;
treemin[1] = Integer.MAX_VALUE;
treemin[2] = Integer.MAX_VALUE;
int [] minnum = new int[3];
for (int j = 0; j < minnum.length; j++) {
for (int i = 0; i < d.length; i++) {
if (d[i]<treemin[j]) {
treemin[j]=d[i];
minnum[j]=i+1;
}
}
System.out.println(minnum[j]);
d[minnum[j]-1]=Integer.MAX_VALUE;
}
}
}
本文地址:https://blog.csdn.net/qq_39303325/article/details/102967439