problem

  • 平面上有N(N<=10000)个点
  • 求这些点变成一条水平线的最小移动步数

solution

  • 对于y轴,易证得在中位数处取到最优,直接排序统计即可。
  • 对于x轴,因为要保证相对顺序,(比如:原来三个士兵的x坐标是 -1 5 6,那么在他们移动之后,假设移动成一条直线之后,起点是原来-1的那个士兵,现在的坐标是9,那么他们之间的相对位置就是9 10 11…)
    1、假设最后水平线的起点是a,根据上面的理论可以得到 x’[0] = a, x’[1] = a+1, x’[2] = a+2…
    2、移项,可以得到x[0] - 0 = a, x[1] - 1 = a, x[2] - 2 = a…..
    3、所以我们把每个x[i] 都减去i,然后再从小到大排序,这样就保证在相对位置不变的情况下成一条水平线。然后把距离差求和就可以了。

codes

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int a[10010], b[10010];
int main(){int n;  cin>>n;for(int i = 1; i <= n; i++)cin>>a[i]>>b[i];sort(b+1,b+n+1);int y = b[n+1>>1];sort(a+1,a+n+1);for(int i = 1; i <= n; i++)a[i]-=i;sort(a+1,a+n+1);int x = a[n+1>>1];int ans = 0;for(int i = 1; i <= n; i++)ans += abs(a[i]-x)+abs(b[i]-y);cout<<ans<<'\n';return 0;
}

【POJ1723】SOLDIERS(中位数,货仓选址)相关推荐

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

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

  2. 中位数应用-货仓选址-纸牌均分-糖果传递-七夕祭

    1. 货仓选址 描述 在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N].现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货 ...

  3. [算法总结] 中位数+绝对值不等式 AcWing 104. 货仓选址

    104. 货仓选址 思路: 排序之后取中位数 中位数的性质,所有数到他的和是最小的 大佬的话: 中位数有非常优秀的性质, 比如说在这道题目中, 每一个点到中位数的距离, 都是满足全局的最有性,而不是局 ...

  4. 中位数--《算法竞赛进阶指南》(货仓选址和七夕祭问题详解)

    中位数 今天又和大家见面了啦~ 依旧是 <算法竞赛进阶指南>的学习哦~ 中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本.种群或概 ...

  5. 解题报告 - 牛客练习赛63 C - 牛牛的揠苗助长(货仓选址+二分)

    链接:https://ac.nowcoder.com/acm/contest/5531/C 来源:牛客网 题目描述 牛牛有一块长度大小为n的菜园,他首先对这块菜园从1到n进行了编号,每一块地分别为1号 ...

  6. Leetcode1703. 得到连续 K 个 1 的最少相邻交换次数[C++题解]:难(货仓选址加强版+滑动窗口+前缀和)

    文章目录 题目分析 题目链接 题目分析 首先需要明确一点:最优结果中1的相对位置和开始时不会改变.否则的话就是交换两个1,会徒劳增加交换次数. 比如[1,0,0,0,0,0,1,1],最后变成[0,0 ...

  7. Acwing104. 货仓选址:贪心(绝对值不等式)

    文章目录 题目分析 题目链接 题目分析 原题: 在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN. 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品. 为了提高效率,求 ...

  8. Arithmetic Sequence 三分,货仓选址,nth_element,__int128(济南)

    题意 : 给一序列,每次操作选择一个数加一或者减一,需要将这个序列变成等差数列,问最小操作数 思路 : 数据范围很大又没有头绪,想到二分或者三分.对于不同的公差d,肯定是只有一个最优,两边的都比这个公 ...

  9. [绝对值不等式] 货仓选址(绝对值不等式+贪心)

    文章目录 0. 前言 1. 排序不等式+贪心 0. 前言 最最最经典的绝对值不等式问题,有很多变种.这个题是最裸的模板题了. 1. 排序不等式+贪心 104. 货仓选址 贪心思路: 按照商店坐标从小到 ...

  10. 绝对值不等式 AcWing 104. 货仓选址

    绝对值不等式 AcWing 104. 货仓选址 原题链接 AcWing 104. 货仓选址 算法标签 排序 快速选择算法 贪心 绝对值不等式 思路 排序后取中位数为货仓建立地点 证明 根据 则 等号成 ...

最新文章

  1. 北京大学 李胜 计算机,计算机科学技术系汪国平-李胜团队在虚拟现实领域取得系列进展...
  2. leetcode-字符串中的第一个唯一字符
  3. Spring Remoting: Burlap--转
  4. 链接h5代码_H5域名被微信拦截的原因及解决方案?
  5. pytest测试实战pdf_Pytest+Allure美化测试报告
  6. 简记模态对话框和非模态对话框
  7. google谷歌官方的上拉刷新(可变的颜色)
  8. criteria 排序_产品需求挖掘与排序的2大利器:文本挖掘与KANO模型
  9. EventBus 发布/订阅 机制的 java 实现
  10. 一句话理解cmp_to_key函数
  11. 如何用python做比分网_使用python对历届世界杯进行数据分析
  12. 创客思维在高等教育中的启迪作用
  13. java 石头剪刀布_java循环练习:石头剪刀布
  14. 弘辽科技:淘宝标签商家是什么意思?注意哪些事项?
  15. 烟沙浮生 | 曾几何时,还是游吟长安的醉客 1
  16. 删除windows文件右击打开方式中的无效程序选项
  17. Li‘s 影像组学radiomics视频学习笔记(42)-影像组学特征提取问题解决过程复现
  18. ENC28J60学习笔记——第4部分
  19. 搜狗输入法如何java_搜狗拼音输入法LINUX版安装
  20. 微信小程序如何段落首行缩进

热门文章

  1. 编程思想 —— 哨兵的使用
  2. Python Flask Web 第十一课 —— 使用 Flask-SQLAlchemy 管理数据库
  3. 极简代码(三)—— 欧式距离
  4. 工具的使用——谷歌浏览器(chrome)
  5. 备份k8s_树莓派k8s集群安装kafka集群及监控
  6. python用什么编译器-15款Python编辑器的优缺点,别再问我quot;选什么编辑器”啦
  7. python画曲线图-Python数据可视化之Matplotlib(折线图)
  8. python基础教程是什么-python基础教程之python是什么?
  9. python与java前景-数据告诉你,Python、Java、C+哪个更有发展前途?
  10. 快准狠才叫爽!六款智能电视语音识别大比拼