关注
第三题因为把取平方根算成了绝对值还看不出来来不及测试。。。有什么数据可以测试一下吗?或者老哥们能看下有什么问题吗。 import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] x = new int[n]; int[] y = new int[n]; for(int i = 0; i < n; i++){ x[i] = in.nextInt(); y[i] = in.nextInt(); } int[][] distance = new int[n][n]; ArrayList<Point> list = new ArrayList<>(); for(int i = 0; i < n; i++){ for(int j = i + 1; j < n; j++){ int a = x[i]-x[j]; int b = y[i] - y[j]; double d = Math.pow(Math.pow((double)a,2) + Math.pow((double)b,2),0.5); Point point = new Point(i,j,d ); list.add(point); } } for(int i = 0; i<n;i++){ Point p = list.get(i); } //保存半径,初始化-1 double[] len = new double[n]; for(int i = 0; i<len.length;i++) len[i] = -1; Collections.sort(list, (o1, o2) -> Double.compare(o1.distance,o2.distance)); //从最短看是更新他们的半径。 for(int i = 0; i < n; i++){ Point p = list.get(i); if(len[p.i] >0) len[p.j] = p.distance-p.i; else if(len[p.j] >0) len[p.i] = p.distance-p.j; else { len[p.i] = p.distance/2; len[p.j] = p.distance/2; } } for(double d:len){ System.out.print(String .format("%.3f",d)+ " "); } } } class Point{ int i; int j; double distance; public Point(int i, int j ,double distance){ this.i = i; this.j = j; this.distance = distance; } }
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
27246次浏览 463人参与
# 非技术岗简历怎么写 #
209483次浏览 2857人参与
# 实习吐槽大会 #
28532次浏览 136人参与
# 26届秋招投递记录 #
2747次浏览 90人参与
# 晒一晒你的工位 #
84963次浏览 302人参与
# 2025牛客秋招季 #
2751次浏览 92人参与
# 如果有时光机,你最想去到哪个年纪? #
46895次浏览 796人参与
# 双非能在秋招上岸吗? #
214915次浏览 1139人参与
# 我的租房踩坑经历 #
23792次浏览 254人参与
# 打工人的工作餐日常 #
40359次浏览 343人参与
# 穿越回高考你还会选现在的专业吗 #
19820次浏览 251人参与
# 软开人,说说你的烦心事 #
48006次浏览 359人参与
# 被AI治愈的瞬间 #
52196次浏览 597人参与
# 毕业旅行去哪玩儿 #
1129次浏览 32人参与
# 怎么防止在试用期被辞退 #
122237次浏览 910人参与
# 关于提前批我想问 #
201766次浏览 2143人参与
# 高学历就一定能找到好工作吗? #
47573次浏览 591人参与
# 携程求职进展汇总 #
531241次浏览 3962人参与
# 打工人锐评公司红黑榜 #
145602次浏览 912人参与
# 夸夸我的求职搭子 #
190932次浏览 1891人参与