题目链接

http://poj.org/problem?id=1723

分析

求排成一行的最少操作步数,其横坐标的相对位置肯定不变。

设从 x0x_0x0​ 往后排,则使横坐标符合要求的操作步数为 ∑i=1nabs(x0+i−xi)=∑i=1nabs((xi−i)−x0)\sum_{i = 1}^n abs(x_0 + i - x_i) = \sum_{i = 1}^n abs((x_i - i) - x_0)∑i=1n​abs(x0​+i−xi​)=∑i=1n​abs((xi​−i)−x0​)。

当 x0x_0x0​ 取序列 {xi−i}\{ x_i - i \}{xi​−i} 的中位数时操作步数最少,使纵坐标相同则是最简单的中位数问题。

AC代码

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>using namespace std;inline int read() {int num = 0, flag = 1;char c = getchar();while (c < '0' || c > '9') {if (c == '-') flag = -1;c = getchar();}while (c >= '0' && c <= '9')num = num * 10 + c - '0', c = getchar();return flag * num;
}const int maxn = 1e4 + 5;int x[maxn], y[maxn];int main() {int n = read(), ans = 0;for (int i = 1; i <= n; ++i) x[i] = read(), y[i] = read();sort(x + 1, x + n + 1);for (int i = 1; i <= n; ++i) x[i] -= i;sort(x + 1, x + n + 1);for (int i = 1; i <= n; ++i) ans += abs(x[i] - x[n / 2 + 1]);sort(y + 1, y + n + 1);for (int i = 1; i <= n; ++i) ans += abs(y[i] - y[n / 2 + 1]);printf("%d", ans);return 0;
}

POJ1723 Soldiers 中位数相关推荐

  1. POJ 1723 Soldiers (中位数)

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

  2. poj1723 SOLDIERS(思维题-中位数/货仓选址问题)

    题目 n(n<=1e4)个士兵,第i个士兵的位置(xi,yi),-1e4<=xi,yi<=1e4 把士兵安排到同一条水平线上,使之在竖直方向n个士兵相邻 最后排成(x,y),(x+1 ...

  3. poj1723 Soldiers(中位数)

    题目链接 题意 给出n个点的坐标,它们只能往上.下.左.右一格一格地移动,求使其移动至水平线上的最小步数. 题解 因为我们最终安排的纵坐标是固定的,设纵坐标为yyyyyy,那么我们希望min⁡∣y[i ...

  4. poj1723 SOLDIERS

    看错题了无语...还以为只要在一排并且每个位置最多为1个士兵就可以... 原来是(x,y), (x+1,y), ..., (x+N-1,y), y取中点,x先减i,再去中点. 就是贪心- #inclu ...

  5. ACM基础与精选2018

    会津大学基础题 AOJ0001 List of Top 3 Hills[水题] AOJ0002 Digit Number[水题] AOJ0005 GCD and LCM[GCD+LCM] AOJ000 ...

  6. $2019$ 暑期刷题记录 $2$(基本算法专题)

    $ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ $ BZOJ~1958~Strange~Towers~of~Hanoi $ (动态规划,递推) 题目大意: 求有 ...

  7. 《算法竞赛进阶指南(by 李煜东)》习题题解 集合

    又是笔者给自己挖的大坑. 这里是李煜东所著<算法竞赛进阶指南(by 李煜东)>的习题题解集合. 有任何错误请在对应文章下反馈或联系 nicest1919@163.com ,谢谢 qwq 从 ...

  8. 【POJ1723】SOLDIERS(中位数,货仓选址)

    problem 平面上有N(N<=10000)个点 求这些点变成一条水平线的最小移动步数 solution 对于y轴,易证得在中位数处取到最优,直接排序统计即可. 对于x轴,因为要保证相对顺序, ...

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

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

最新文章

  1. 【记录】入选《开发工具领域内容榜》第6名
  2. VirtualBox - RTR3InitEx failed with rc=-1912 (rc=-1912)
  3. 如果ASM磁盘组由哪些物理磁盘组成?
  4. 对话阿里云李飞飞:下一代企业级数据库6大技术方向
  5. 环的寻找:寻找无向图中所有存在的环-删除点法
  6. Java数据类型以及变量的定义
  7. 基于单链表的生产者消费者问题
  8. java maven module_java – Maven JDK9模块:无法解析module-info
  9. Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员
  10. MYSQL 主从复制读写分离实现
  11. 《深入理解Android2》读书笔记(二)
  12. 利用VBB仿真——实现摇杆时钟
  13. WPF ControlTemplate 仿QQ概念版CheckBox
  14. 通达信与飞狐不同函数的替代
  15. Excel制作二维码、条形码?你肯定没见过
  16. IOS越狱和Android Root检测
  17. windows10如何设置电脑的固定IP地址
  18. 为什么要做特征共线性分析
  19. MySQL如何复制表结构,及如何复制表内容,以及临时表
  20. 海致大数据京信_2018华为全联接大会|海致网聚提出公安大数据个人计算新理念...

热门文章

  1. 【浏览器】Chrome (on Mac)
  2. Cannot find JRE '1.8'. You can specify JRE to run maven goals in Settings
  3. Flutter Table 表格
  4. 百度收银台支付开通指引说明
  5. ModuleNotFoundError: No module named ‘setuptools.command.build‘解决方案
  6. 07年美科技股涨幅排行榜 百度第一
  7. 基于腾讯云个人博客的搭建
  8. amber中非标准氨基酸残基的参数生成
  9. SLAM算法中的地图构建问题
  10. 获取屏幕大小、获取底部虚拟按键高度