关注
//堆棋子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;
}
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
25410次浏览 437人参与
# 面试经验谈 #
16274次浏览 259人参与
# 京东TGT #
31958次浏览 153人参与
# 假如我穿越到了妈妈的18岁 #
563次浏览 25人参与
# 对妈妈没说出口的话 #
9247次浏览 256人参与
# 面试吐槽bot #
3260次浏览 42人参与
# 职场新人生存指南 #
335721次浏览 7200人参与
# 妈妈治愈了你哪些脆皮时刻 #
3732次浏览 91人参与
# 异地恋该为对方跳槽吗 #
25099次浏览 123人参与
# 硬件人更看重稳定还是高薪 #
40198次浏览 207人参与
# 请用你的专业向妈妈表白 #
2415次浏览 39人参与
# 硬件人秋招的第一个offer #
66234次浏览 1082人参与
# 机械求职避坑tips #
41674次浏览 355人参与
# 工作一周年分享 #
14404次浏览 100人参与
# 入职第五天,你被拉进了几个工作群 #
13458次浏览 77人参与
# 机械人,你的第一份感谢信是谁给的 #
22567次浏览 295人参与
# 视觉/交互/设计招聘信息汇总 #
10053次浏览 595人参与
# 租房找室友 #
28844次浏览 148人参与
# 不考虑转正,实习多久合适 #
24845次浏览 119人参与
# 签约有哪些注意事项 #
33764次浏览 241人参与
# 上班苦还是上学苦呢? #
214119次浏览 1288人参与