POJ1723 Soldiers 中位数
题目链接
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=1nabs(x0+i−xi)=∑i=1nabs((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 中位数相关推荐
- POJ 1723 Soldiers (中位数)
$ POJ~1723~Soldiers $ (中位数) $ solution: $ 这道题说难也不算太难,但是当时自己想的很矛盾.所以还是列一篇题解. 这道题首先比较容易看出来的就是:行和列是两个分开 ...
- poj1723 SOLDIERS(思维题-中位数/货仓选址问题)
题目 n(n<=1e4)个士兵,第i个士兵的位置(xi,yi),-1e4<=xi,yi<=1e4 把士兵安排到同一条水平线上,使之在竖直方向n个士兵相邻 最后排成(x,y),(x+1 ...
- poj1723 Soldiers(中位数)
题目链接 题意 给出n个点的坐标,它们只能往上.下.左.右一格一格地移动,求使其移动至水平线上的最小步数. 题解 因为我们最终安排的纵坐标是固定的,设纵坐标为yyyyyy,那么我们希望min∣y[i ...
- poj1723 SOLDIERS
看错题了无语...还以为只要在一排并且每个位置最多为1个士兵就可以... 原来是(x,y), (x+1,y), ..., (x+N-1,y), y取中点,x先减i,再去中点. 就是贪心- #inclu ...
- ACM基础与精选2018
会津大学基础题 AOJ0001 List of Top 3 Hills[水题] AOJ0002 Digit Number[水题] AOJ0005 GCD and LCM[GCD+LCM] AOJ000 ...
- $2019$ 暑期刷题记录 $2$(基本算法专题)
$ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ $ BZOJ~1958~Strange~Towers~of~Hanoi $ (动态规划,递推) 题目大意: 求有 ...
- 《算法竞赛进阶指南(by 李煜东)》习题题解 集合
又是笔者给自己挖的大坑. 这里是李煜东所著<算法竞赛进阶指南(by 李煜东)>的习题题解集合. 有任何错误请在对应文章下反馈或联系 nicest1919@163.com ,谢谢 qwq 从 ...
- 【POJ1723】SOLDIERS(中位数,货仓选址)
problem 平面上有N(N<=10000)个点 求这些点变成一条水平线的最小移动步数 solution 对于y轴,易证得在中位数处取到最优,直接排序统计即可. 对于x轴,因为要保证相对顺序, ...
- 【POJ 1723】SOLDIERS(排序、中位数)
题面:SOLDIERS 题目大意 有 nnn 个士兵,并且知道每个士兵在二维坐标图上的位置. 士兵可以进行移动,但是每个士兵每次只能向上.向下.向左或向右移动一个单位,因此,他的 xxx 或 yyy ...
最新文章
- 【记录】入选《开发工具领域内容榜》第6名
- VirtualBox - RTR3InitEx failed with rc=-1912 (rc=-1912)
- 如果ASM磁盘组由哪些物理磁盘组成?
- 对话阿里云李飞飞:下一代企业级数据库6大技术方向
- 环的寻找:寻找无向图中所有存在的环-删除点法
- Java数据类型以及变量的定义
- 基于单链表的生产者消费者问题
- java maven module_java – Maven JDK9模块:无法解析module-info
- Windows加域提示 已超出此域允许的创建的计算机账户的最大值,请联系统管理员
- MYSQL 主从复制读写分离实现
- 《深入理解Android2》读书笔记(二)
- 利用VBB仿真——实现摇杆时钟
- WPF ControlTemplate 仿QQ概念版CheckBox
- 通达信与飞狐不同函数的替代
- Excel制作二维码、条形码?你肯定没见过
- IOS越狱和Android Root检测
- windows10如何设置电脑的固定IP地址
- 为什么要做特征共线性分析
- MySQL如何复制表结构,及如何复制表内容,以及临时表
- 海致大数据京信_2018华为全联接大会|海致网聚提出公安大数据个人计算新理念...
热门文章
- 【浏览器】Chrome (on Mac)
- Cannot find JRE '1.8'. You can specify JRE to run maven goals in Settings
- Flutter Table 表格
- 百度收银台支付开通指引说明
- ModuleNotFoundError: No module named ‘setuptools.command.build‘解决方案
- 07年美科技股涨幅排行榜 百度第一
- 基于腾讯云个人博客的搭建
- amber中非标准氨基酸残基的参数生成
- SLAM算法中的地图构建问题
- 获取屏幕大小、获取底部虚拟按键高度