题目描述

在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点用整数坐标(x,y)表示。士兵们可以沿网格边往上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何选择x和y的值才能使士兵们以最少的总移动步数排成一行。
       编程计算使所有士兵排成一行需要的最少移动步数。

输入

第1行是士兵数n,1≤n≤10000。接下来n行是士兵的初始位置,每行有2个整数x和y,-10000≤x,y≤10000。

输出

一个数据,即士兵排成一行需要的最少移动步数。

样例输入

5
1 2
2 2
1 3
3 -2
3 3

样例输出

8

提示

AC代码:

#include<bits/stdc++.h>

using namespace std;

const int MS=1e4+5;

int n,x[MS],y[MS],tx,ty;

int main(){

    scanf("%d",&n);

    for(int i=0;i<n;i++)scanf("%d%d",&x[i],&y[i]);

    sort(x,x+n);sort(y,y+n);

    for(int i=0;i<n;i++)x[i]-=i;

    sort(x,x+n);

    tx=0;ty=0;

    for(int i=0;i<n;i++){

        tx+=abs(x[i]-x[n/2]);

        ty+=abs(y[i]-y[n/2]);

    }

    tx+=ty;

    printf("%d\n",tx);

    return 0;

}

《Free Pascal 语言与基础算法》_数据排序_9_士兵站队问题题解相关推荐

  1. 经典c语言基础代码大全,10个经典的C语言面试基础算法及代码

    <10个经典的C语言面试基础算法及代码>由会员分享,可在线阅读,更多相关<10个经典的C语言面试基础算法及代码(24页珍藏版)>请在人人文库网上搜索. 1.10个经典的C语言面 ...

  2. 起泡排序算法_气泡排序算法

    起泡排序算法 When working with large databases, it is necessary to add the functionality to search for val ...

  3. java奇偶排序算法_奇偶排序

    在<java高并发程序设计>一书中看到关于一种并行算法排序方法:奇偶排序.结合书上与网上的各项资料,在这里按自己的理解做下梳理. 介绍 冒泡排序:是串行算法,在每次迭代过程中,对于每个元素 ...

  4. 算法设计与分析: 2-7 士兵站队问题

    2-7 士兵站队问题 问题描述 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数坐标(x,y)表示.士兵们可以沿网格边上.下.左.右移动一步,但在同一时刻任一网格点上只能有一名士兵. ...

  5. 双代号网络图基础算法_软考网络工程师之系统开发和运行基础(软件分类、测试、模型)...

    系统开发和运行基础(软件的分类.软件生存周期.软件开发模型.软件测试.软件项目管理) 软件的分类 系统软件,如操作系统. 支撑软件,如开发工具. 应用软件,如office. 实时处理软件,一般是工业软 ...

  6. 开花算法_数据科学即将开花,但其根源已经存在了很长时间

    开花算法 "The future of data analysis can involve great progress, the overcoming of real difficulti ...

  7. 快速近似最近邻算法_数据科学家指南,以选择最佳近似最近邻算法

    快速近似最近邻算法 by Braden Riggs and George Williams (gwilliams@gsitechnology.com) Braden Riggs和George Will ...

  8. 双代号网络图基础算法_从网络图探寻基因互作的蛛丝马迹(5)

    在前面的4期中,我们分别给大家讲解了网络图的构造. STRING 数据库.Cytoscape 软件的安装以及使用,链接如下: 从网络图探寻基因互作的蛛丝马迹(1) [科研猫·绘图]从网络图探寻基因互作 ...

  9. Java学习路线(语法基础+算法与数据结构部分)

    后端开发学习经验 首先,对于软件基础知识的学习,建议尽可能地去看一些经典的书籍,看第一遍的时候可以不用太过细致,快速地看,重在了解这本书的知识框架,在把握了整体的逻辑框架之后,第二遍就可以详细学习各章 ...

最新文章

  1. [Issue Fixed]-GCC编译[-Werror,-Wformat]
  2. opengl游戏引擎源码_UE4渲染引擎模块简介(1)
  3. 牛客 - Across the Firewall(最大流)
  4. MYSQL存储引擎笔记
  5. 【Linux】linux服务器下的帮助命令总结
  6. atom配置python环境_Python编程:用VScode配置Python开发环境
  7. iOS 评论中含有表情的处理方法
  8. 桌面上打开计算机有延迟感觉,电脑问题我的电脑进入系统桌面是很快但是在打开桌面上的图标是就慢的 爱问知识人...
  9. mac brew 测速 软件_敏捷过程中的软件持续建模
  10. 尚硅谷JDBC笔记(带源码)——了解数据库,看这一篇就够了
  11. .net RestSharp使用
  12. 手机怎么打开html游戏,网页游戏打不开怎么解决 网页游戏打不开解决方法
  13. MATLAB如何打开chm文件
  14. 百度电子商务平台“有啊”正式上线,中国的电子商务平台或将重新洗牌?
  15. 网站搭建需要多少钱?如何搭建比较省钱呢?
  16. 自己手写的一个关于中英文切换时间的工具类
  17. ​定了,北京时间 9 月 16 日凌晨 1 点见。
  18. php中文输出有乱码怎么办,php中文输出乱码怎么办
  19. C#编程_网卡信息检测与网络流量检测
  20. linux 宝塔镇河妖

热门文章

  1. 计算机网络路由器作用是什么,路由器的作用是什么?
  2. 机房动环监控系统应用意义
  3. 【LeetCode】跳跃游戏Ⅰ~Ⅵ(我真的跳晕了@_@)
  4. web3.js的provider
  5. 语义分割如何走下去?| 文末送书
  6. samba服务器搭建详细配置
  7. JVM内存回收机制及回收器-一目了然
  8. php curl发布微博,php curl利用嘀咕、搜狐微博API发布微博
  9. LCD1602 液晶
  10. mysql查询历史执行sql记录