题目大意:有N个士兵,每个士兵开始站的坐标是(x,y),现在使得将N个士兵站在同一个水平线(即所有士兵的y坐标相同)并且x坐标相邻,每个士兵每次可以移动一个位置(分别在x和y方向移动)。求出最少的移动步数。

分析题目:首先这个是可以分开看的,横纵坐标没有联系。

Y坐标:仅仅求出一个简单的中位数即可,然后一次求出距离这个中位数的值。

X坐标:这里我主要想讲讲这个X坐标的排序。题目中要求,x坐标必须连续排列(不能够存在重叠),于是,在这里这个操作是:
               一,先将x的序列排序
                二,将每个x的序列减去当前的下标值;思考:这里为啥要这样操作?有这样一个操作之后就可以保证连续排列。(如果原来本身就是相邻的部分,那么这一部分就不存在了)
                三,再对新的x的序列进行排序,找到中位数,依次相减即可。

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
const int N = 10000;
int x[N],y[N];
int main()
{int n,i,j;while(cin>>n){for(i = 0;i<n;i++)cin>>x[i]>>y[i];sort(x,x+n);for(i = 0;i<n;i++)x[i] -= i;sort(x,x+n);sort(y,y+n);int ans,ansx,ansy;ans = 0;ansx = x[n/2];ansy = y[n/2];for(i = 0;i<n;i++){ans += abs(x[i]-ansx);ans += abs(y[i]-ansy);}cout<<ans<<endl;}return 0;} 

POJ 1723(中位数+连续排列)相关推荐

  1. poj 1723 中位数

    最近在看一些中位数的东西,然后顺便也看了些题目.poj 1723不仅要求到水平位置的最短距离和,还要求水平都相邻的排成一排的最短距离和,即士兵都站成一列. 到y轴的距离好办,按y轴坐标排序,求中位数, ...

  2. POJ 1723 Soldiers (中位数)

    $ POJ~1723~Soldiers $ (中位数) $ solution: $ 这道题说难也不算太难,但是当时自己想的很矛盾.所以还是列一篇题解. 这道题首先比较容易看出来的就是:行和列是两个分开 ...

  3. POJ 1723 士兵排队 C语言实现

    ** POJ 1723 士兵排队 C语言实现 ** ** 原文 ** Description N soldiers of the land Gridland are randomly scattere ...

  4. 【POJ 1723 --- SOLDIERS】

    [POJ 1723 --- SOLDIERS] Description N soldiers of the land Gridland are randomly scattered around th ...

  5. G - SOLDIERS POJ - 1723 sort+数学

    G - SOLDIERS POJ - 1723 题解 好妙啊! 由于与路径没啥关系,走折线即可 先找出 y 的中位数,全部走到中位数的位置 对 x ,先排序,再构造一个 temp[i] = x[i] ...

  6. POJ - 1723 Soldiers 士兵站队 排序+中位数

    [问题描述] 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数最表(x,y)表示.士兵可以沿着网格边上.下.左.右移动一步,但在同一时刻一个网格上只能有一名士兵.按照军官的命令,士兵 ...

  7. 【POJ 1723】SOLDIERS(排序、中位数)

    题面:SOLDIERS 题目大意 有 nnn 个士兵,并且知道每个士兵在二维坐标图上的位置. 士兵可以进行移动,但是每个士兵每次只能向上.向下.向左或向右移动一个单位,因此,他的 xxx 或 yyy ...

  8. poj 1715 Hexadecimal Numbers 排列组合

    1 /** 2 大意: 给定16进制数的16个字母,,求第k大的数,,要求数的长度最大为8.,并且每个数互不相同. 3 思路: 从高到低挨个枚举,每一位能组成的排列数 ,拿最高位来说,能做成的排列数为 ...

  9. POJ 1723 SOLDIERS

    原题 Description: 平面直角坐标系中给定n个点, 每一次只能将一个点移动一个单位, 求移动的最小次数使得这n个点位于同一水平线上且全部相邻. Input: n:点的个数(1<= n ...

最新文章

  1. 弃 Windows 而拥抱 Linux 之后,这本书教了新玩法
  2. Consul入门04 - Consul集群
  3. 2月份.xyz域名总量10强:西数称王 注册量破百万
  4. 设置 JDK环境变量(Windows)
  5. php查询文件名,php怎么查询文件名
  6. phpStorm提示Cannot save files解决 js___jb_tmp___
  7. Excel进行粗糙的快速更换图片背景颜色
  8. HTTP Content-type整理
  9. 【编译原理】- 递归下降的语法分析器的实现
  10. 开发erp管理系统的好处
  11. linux中source命令详解,在Linux中,Source命令是什么如何使用它?
  12. Kubernetes网络插件(CNI)超过10Gbit/s网络的基准结果
  13. JUnit5中@ParameterizedTest 处理 @CvsSource中的空值
  14. GWT(Google Web Toolkit)是干嘛用的
  15. Threejs-创建旋转正方体
  16. 简智音科技:抖音短视频时长几何为好呢?
  17. 微信点餐小程序(外卖配送)解决方案
  18. 前员工推出新搜索引擎Cuil挑战Google
  19. 【C】编一程序,将两个字符串连接起来,不要用strcat函数
  20. Struts2框架搭建

热门文章

  1. 全连接网络实现Fashion数据集学习/预测
  2. markdown教程
  3. H5案例分享:jquery.qrcode.js生成简易二维码
  4. Unity_播放音乐
  5. 英雄联盟7月23日维修服务器,英雄联盟7月23日更新维护到几点结束 7月23日lol10.15版本更新维护结束时间...
  6. h5常见的几种表现形式
  7. 教育知识与能力-第一章教育基础知识和基本原理
  8. winmerge多个文件夹生成html,在Git中使用Winmerge来文件di
  9. 一个小白的Arp攻防实战
  10. Redisson分布式调度任务小栗子