欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【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
问题描述:
【CCF】202009-1 称检测点查询(Java实现)
样例输入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