【蓝桥杯】P12165 [蓝桥杯 2025 省 C/Java A] 最短距离

最短距离

题目描述

在一条一维的直线上,存在着 n n n 台显示器和 n n n 个电源插座。老师给小蓝布置了个任务:负责将每台显示器通过电源线与一个插座相连接(每个插座最多只能给一台显示器供电);同时,老师希望所消耗的电源线的长度尽可能的少,请你帮小蓝计算下电源线的最小消耗长度为多少?

为了便于计算,你只需要考虑直线距离即可。

输入格式

输入的第一行包含一个正整数 n n n。

接下来 n n n 行,每行包含一个整数 x i x_i xi,依次表示每台显示器的坐标。

接下来 n n n 行,每行包含一个整数 y i y_i yi,依次表示每个插座的坐标。

输出格式

输出一行包含一个整数表示答案。

输入输出样例 #1
输入 #1
复制代码
2
0
1
2
3
输出 #1
复制代码
4
说明/提示
评测用例规模与约定
  • 对于 20 % 20\% 20% 的评测用例, 1 ≤ n ≤ 10 1 \leq n \leq 10 1≤n≤10, 0 ≤ x i , y i ≤ 100 0 \leq x_i, y_i \leq 100 0≤xi,yi≤100;
  • 对于 40 % 40\% 40% 的评测用例, 1 ≤ n ≤ 100 1 \leq n \leq 100 1≤n≤100, 0 ≤ x i , y i ≤ 1 0 3 0 \leq x_i, y_i \leq 10^3 0≤xi,yi≤103;
  • 对于 60 % 60\% 60% 的评测用例, 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1≤n≤1000, 0 ≤ x i , y i ≤ 1 0 5 0 \leq x_i, y_i \leq 10^5 0≤xi,yi≤105;
  • 对于 80 % 80\% 80% 的评测用例, 1 ≤ n ≤ 10000 1 \leq n \leq 10000 1≤n≤10000, 0 ≤ x i , y i ≤ 1 0 9 0 \leq x_i, y_i \leq 10^9 0≤xi,yi≤109;
  • 对于所有评测用例, 1 ≤ n ≤ 50000 1 \leq n \leq 50000 1≤n≤50000, 0 ≤ x i , y i ≤ 1 0 9 0 \leq x_i, y_i \leq 10^9 0≤xi,yi≤109。

P12165 蓝桥杯 2025 省 C/Java A 最短距离

【思路分析】

经典贪心问题,将电脑和插座分别排序后依次对应就是最短长度(不会证明)

java 复制代码
import java.io.*;
import java.util.*;
public class Main {
    static final int N = 50010;
    //数据范围是10的9次方,一定要开long,不开long直接见祖宗
    static long[] computer = new long[N];
    static long[] power = new long[N];
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        for(int i = 0; i < n; i++) {
            computer[i] = (long)Integer.parseInt(br.readLine());
        }
        for(int i = 0; i < n; i++) {
            power[i] = (long)Integer.parseInt(br.readLine());
        }
        //对电脑和插座排序
        Arrays.sort(computer, 0, n);
        Arrays.sort(power, 0, n);
        long res = 0;
        //经典贪心问题,第i个电脑对应第i个插座就是最优的
        for(int i = 0; i < n; i++) {
            res += Math.abs(computer[i] - power[i]);
        }
        System.out.println(res);
        br.close();
    }
}
相关推荐
代码山河30 分钟前
基本类型转换:自动类型转换与强制类型转换
java·学习·架构·教程·面向对象·项目
Escalating_xu2 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
程序猿乐锅2 小时前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
Java后端的Ai之路2 小时前
【AIAgent开发】-Agent工具封装成CLI(纯干货!!!)
java·javascript·人工智能·agent·cli
AntsData3 小时前
用 12K+ 条亚马逊评论信号,定位机械键盘下一版该改什么
java·大数据·计算机外设
code2cat3 小时前
【随笔】连续批处理:长短请求怎样在迭代之间补位
java·人工智能·后端·大语言模型·vllm
最强小杰3 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
Flynn Liang3 小时前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai
灿飞3 小时前
Kotlin与Java虚拟机六:基础与类型系统:一切皆对象,但对象有代价
java·kotlin
计算机毕设定制辅导-无忧学长4 小时前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统