POJ 1723(中位数+连续排列)
题目大意:有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(中位数+连续排列)相关推荐
- poj 1723 中位数
最近在看一些中位数的东西,然后顺便也看了些题目.poj 1723不仅要求到水平位置的最短距离和,还要求水平都相邻的排成一排的最短距离和,即士兵都站成一列. 到y轴的距离好办,按y轴坐标排序,求中位数, ...
- POJ 1723 Soldiers (中位数)
$ POJ~1723~Soldiers $ (中位数) $ solution: $ 这道题说难也不算太难,但是当时自己想的很矛盾.所以还是列一篇题解. 这道题首先比较容易看出来的就是:行和列是两个分开 ...
- POJ 1723 士兵排队 C语言实现
** POJ 1723 士兵排队 C语言实现 ** ** 原文 ** Description N soldiers of the land Gridland are randomly scattere ...
- 【POJ 1723 --- SOLDIERS】
[POJ 1723 --- SOLDIERS] Description N soldiers of the land Gridland are randomly scattered around th ...
- G - SOLDIERS POJ - 1723 sort+数学
G - SOLDIERS POJ - 1723 题解 好妙啊! 由于与路径没啥关系,走折线即可 先找出 y 的中位数,全部走到中位数的位置 对 x ,先排序,再构造一个 temp[i] = x[i] ...
- POJ - 1723 Soldiers 士兵站队 排序+中位数
[问题描述] 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数最表(x,y)表示.士兵可以沿着网格边上.下.左.右移动一步,但在同一时刻一个网格上只能有一名士兵.按照军官的命令,士兵 ...
- 【POJ 1723】SOLDIERS(排序、中位数)
题面:SOLDIERS 题目大意 有 nnn 个士兵,并且知道每个士兵在二维坐标图上的位置. 士兵可以进行移动,但是每个士兵每次只能向上.向下.向左或向右移动一个单位,因此,他的 xxx 或 yyy ...
- poj 1715 Hexadecimal Numbers 排列组合
1 /** 2 大意: 给定16进制数的16个字母,,求第k大的数,,要求数的长度最大为8.,并且每个数互不相同. 3 思路: 从高到低挨个枚举,每一位能组成的排列数 ,拿最高位来说,能做成的排列数为 ...
- POJ 1723 SOLDIERS
原题 Description: 平面直角坐标系中给定n个点, 每一次只能将一个点移动一个单位, 求移动的最小次数使得这n个点位于同一水平线上且全部相邻. Input: n:点的个数(1<= n ...
最新文章
- 弃 Windows 而拥抱 Linux 之后,这本书教了新玩法
- Consul入门04 - Consul集群
- 2月份.xyz域名总量10强:西数称王 注册量破百万
- 设置 JDK环境变量(Windows)
- php查询文件名,php怎么查询文件名
- phpStorm提示Cannot save files解决 js___jb_tmp___
- Excel进行粗糙的快速更换图片背景颜色
- HTTP Content-type整理
- 【编译原理】- 递归下降的语法分析器的实现
- 开发erp管理系统的好处
- linux中source命令详解,在Linux中,Source命令是什么如何使用它?
- Kubernetes网络插件(CNI)超过10Gbit/s网络的基准结果
- JUnit5中@ParameterizedTest 处理 @CvsSource中的空值
- GWT(Google Web Toolkit)是干嘛用的
- Threejs-创建旋转正方体
- 简智音科技:抖音短视频时长几何为好呢?
- 微信点餐小程序(外卖配送)解决方案
- 前员工推出新搜索引擎Cuil挑战Google
- 【C】编一程序,将两个字符串连接起来,不要用strcat函数
- Struts2框架搭建
热门文章
- 全连接网络实现Fashion数据集学习/预测
- markdown教程
- H5案例分享:jquery.qrcode.js生成简易二维码
- Unity_播放音乐
- 英雄联盟7月23日维修服务器,英雄联盟7月23日更新维护到几点结束 7月23日lol10.15版本更新维护结束时间...
- h5常见的几种表现形式
- 教育知识与能力-第一章教育基础知识和基本原理
- winmerge多个文件夹生成html,在Git中使用Winmerge来文件di
- 一个小白的Arp攻防实战
- Redisson分布式调度任务小栗子