关注
//堆棋子JAVA
import java.util.*;
public class Main{
//public static int m = 10^9; //循环边界
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
int[] temp1 = new int[n];
int[] temp2 = new int[n];
//取所有初始棋子的最大边界作为循环边界(这样会超内存),不理解大佬说的为何汇聚点一定在已有棋子的横纵坐标处??
//int maxX = 0;
//int maxY = 0; //循环边界
for(int i=0; i<n; i++){
temp1[i] = sc.nextInt(); //循环边界
//maxX = Math.max(maxX,temp1[i]);
}
for(int i=0; i<n; i++){
temp2[i] = sc.nextInt();
//maxY = Math.max(maxY,temp2[i]);
}
Point[] point = new Point[n+1]; //棋子的初始位置
for(int i=0; i<n; i++){
point[i+1] = new Point(temp1[i],temp2[i]);
}
int[] shortDistance = new int[n+1]; //放置i个棋子的最少操作次数
Arrays.fill(shortDistance,Integer.MAX_VALUE);
//循环边界没取10^9,只能通过30%;取初始棋子的最大边界,通过60%。取初始棋子下标,100%
for(int i : temp1){
for(int j : temp2){
int[] distance = new int[n+1];
//在坐标(i,j)放置k个棋子
for(int k=1; k<=n; k++){ //求出(i,j)到每个初始点的距离,排序
distance[k] = Math.abs(i-point[k].x) + Math.abs(j-point[k].y);
}
Arrays.sort(distance);
int temp = 0;
//求若在(x,y)放置1~n个棋子的最短距离,更新结果集合(判断全局最短是否为在(i,j)处获得)
for(int k=1; k<=n; k++){
temp += distance[k];
shortDistance[k] = Math.min(shortDistance[k],temp);
}
}
}
for(int i=1; i<=n-1; i++){
System.out.print(shortDistance[i] + " ");
}
System.out.println(shortDistance[n]);
}
}
private static class Point{
int x;
int y;
Point(int x, int y){
this.x = x;
this.y = y;
}
}
}
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 大厂面试初体验 #
5202次浏览 42人参与
# 如果可以,你希望哪个公司来捞你 #
100721次浏览 456人参与
# 如何提高实习转正率? #
2182次浏览 30人参与
# leader认为你工作不认真怎么办 #
30811次浏览 140人参与
# 你遇到过哪些神仙同事 #
100283次浏览 724人参与
# 我的国央企投递进展 #
46604次浏览 290人参与
# 国企是理工四大天坑的最好选择吗 #
13666次浏览 95人参与
# 五一之后,实习真的很难找吗? #
78489次浏览 515人参与
# 机械人,你被简历秒挂的企业有哪些? #
42974次浏览 281人参与
# 招聘要求与实际实习内容不符怎么办 #
112967次浏览 770人参与
# 如果公司给你放一天假,你会怎么度过? #
17037次浏览 128人参与
# 找工作时的取与舍 #
80422次浏览 568人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
246264次浏览 1792人参与
# 三一重工求职进展汇总 #
15017次浏览 67人参与
# OPPO求职进展汇总 #
662811次浏览 5041人参与
# 你的秋招第一场笔试是哪家 #
142747次浏览 1453人参与
# 总结:哪家公司面试体验感最差 #
61065次浏览 276人参与
# 如果重来一次你还会读研吗 #
176881次浏览 1786人参与
# 机械人,说说你的烦心事 #
69657次浏览 839人参与
# 面试时被问的最奇葩的问题 #
22954次浏览 130人参与