题目传送门

二话不说先上代码:

#include<bits/stdc++.h>
using namespace std;
int n;
int x,y[10001];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d %d",&x,&y[i]);
}
sort(y+1,y+n+1);
int mid;
if(n%2==0){
mid=(y[n/2]+y[n/2+1])/2;
}else
{
mid=y[n/2+1];
}
int sum=0;
for(int i=1;i<=n;i++){
sum+=abs(y[i]-mid);
}
cout<<sum<<endl;
return 0;
}

思路&证明

这个题超简单啊……哈哈,不过我看题解区竟然有用模拟退火的的大佬??orzorz,蒟蒻只好在自己的地盘发一个题解……

本题主要思路是中位数。啊没错就是把所有y坐标给他排个序然后求中位数就完事了

为什么这是对的呢?为什么是中位数而不是平均数呢?

首先我们要明确一件事:x坐标完全没有用。因为我们的主输油管道可以无限长

接下来对y坐标下手,我们发现,题意可以翻译为:对一个有限的序列,求一个值使得这个值与序列中各值的差的绝对值的和最小

这不就是中位数吗???

至于这个的具体证明,推荐一篇博文:中位数定理

所以直接求中位数就好了呀!

最新文章

  1. No.013:Roman to Integer
  2. 批处理命令——if
  3. css页面点击文字出现蓝色底色去掉方法
  4. Android中直播视频技术探究之---摄像头Camera视频源数据采集解析
  5. windows8.1安装
  6. Why doesn&#39;t Genymotion run on Windows 10?
  7. 【转】linux驱动程序中的并发控制
  8. java编解码技术,json序列化与二进制序列化
  9. [二分匹配]URAL1721Two Sides of the Same Coin
  10. 在安装mysql出现的错误以及解决方法
  11. @media max-width 与jquery宽度取值的差异
  12. iOS设置状态栏的字体颜色
  13. 查看linux网卡硬件名称
  14. windows MySQL 5.6.38 安装步骤
  15. BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】
  16. js命名中的关键字整理
  17. 永续公债(or统一公债)的麦考利久期(Macaulay Duration)的计算
  18. docker镜像的创建commit及dockerfile
  19. win32多线程-新版本MtVerify.h
  20. git+gitolite+cgit+apache on Ubuntu

热门文章

  1. 说说 Redis pipeline
  2. python如何引入外部其他py文件
  3. 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化
  4. [苹果APP上架]ios App Store上架详细教程-一条龙顺滑上架-适合小白
  5. 【单元测试】Junit 4(三)--Junit4断言
  6. clang在编译时指定目标文件所需的最低macOS版本
  7. zk系列二:zookeeper实战之分布式统一配置获取
  8. 这是不是你想要了解SQL的艺术,基础语法等等
  9. Mp3文件标签信息读取和写入(Kotlin)
  10. Redis的攻击手法