码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • HZOJ-251:士兵


     

    题目描述

    ​ 一些士兵站在矩阵的一些方格内,现要把他们移动到一横排,并连续地排成一队,士兵一次可以选择四个方向中的一个方向移动一格,求最少需要移动多少步才能完成要求。

    ​ 即所有士兵的y坐标相同并且x坐标相邻。


    输入

    ​ 第一行输入一个正整数 n�,表示士兵的数量。(1≤n≤10000)(1≤�≤10000)

    ​ 接下来 n� 行,每行两个数,代表第 i� 个士兵所处位置的横纵坐标 Xi,Yi��,��。(−10000≤Xi,Yi≤10000)(−10000≤��,��≤10000)

    输出

    ​ 输出最少移动步数。


    样例输入
    1. 5
    2. 1 2
    3. 2 2
    4. 1 3
    5. 3 -2
    6. 3 3
    样例输出
    8

    数据规模与约定

    ​ 时间限制:1 s

    ​ 内存限制:256 M

    ​ 100% 的数据保证 1≤n≤10000,−10000≤Xi,Yi≤10000

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. void merge_sort(int* arr, int l, int r) {
    4. if (r - l <= 1) return;
    5. int mid = (r + l) / 2;
    6. merge_sort(arr, l, mid);
    7. merge_sort(arr, mid, r);
    8. int* temp = (int*)malloc(sizeof(int) * (r - l));
    9. int p1 = l, p2 = mid, k = 0;
    10. while (p1 < mid || p2 < r) {
    11. if (p2 == r || (p1 < mid && arr[p1] <= arr[p2]))
    12. temp[k++] = arr[p1++];
    13. else
    14. temp[k++] = arr[p2++];
    15. }
    16. for (int i = l; i < r; i++) arr[i] = temp[i - l];
    17. free(temp);
    18. return;
    19. }
    20. int main() {
    21. int n;
    22. scanf("%d", &n);
    23. int* a = (int*)malloc(sizeof(int) * n);
    24. int* b = (int*)malloc(sizeof(int) * n);
    25. for (int i = 0; i < n; i++) scanf("%d %d", &a[i], &b[i]);
    26. merge_sort(b, 0, n);
    27. merge_sort(a, 0, n);
    28. for (int i = 0; i < n; i++) a[i] -= i;
    29. merge_sort(a, 0, n);
    30. int Y = b[n / 2], X = a[n / 2];
    31. int costy = 0, costx = 0;
    32. for (int i = 0; i < n; i++) costy += abs(b[i] - Y), costx += abs(a[i] - X);
    33. printf("%d", costx + costy);
    34. return 0;
    35. }

  • 相关阅读:
    yolov5中pt模型转onnx模型报错
    【JavaSE】抽象类
    docker部署nacos集群
    IO口电路种类
    YB6502是一款5V输入支持两节串联磷酸铁锂电池的升压充电管理应用
    机器学习---SVM目标函数求解,SMO算法
    2022年全球市场香兰素总体规模、主要生产商、主要地区、产品和应用细分研究报告
    k8s中无法获取到nginx-ingress的客户端真实ip地址x-forwarded-for
    openGauss学习笔记-79 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT应用场景
    如何在Spring JDBC 中获取自动生成的 ID
  • 原文地址:https://blog.csdn.net/Mz_yuner/article/details/132900502
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号