http://acm.pku.edu.cn/JudgeOnline/problem?id=1723

一个定理:S=|x1-k|+|x2-k|+...+|xn-k|,当k为序列x的中位数时,S取最小值。

y方向很简单。不同的y合成到一点。排序之后按上面做,(yn-y1)+(yn-1-y2)...

x方向要排成x,x+1,x+2....x+n-1

只要找到一个确定的点就可以确定新的x序列了。假如排好后最左边的坐标为k,则移动的步数就是|x0-k|+|x1-(k+1)|+|x2-(k+2)|+...+|xn-(k+n)|,就是|x0-k|+|x1-1-k|+|x2-2-k|+..+|xn-(n-1)-k|,所以k为新的x序列的中位数。对x[i]排序,求出x[i]-i,再排序,求出S。

#include<iostream> #include<algorithm> using namespace std; const int size=10002; int N,x[size],y[size]; int main(){ int i,m,j,total; while(scanf("%d",&N)!=EOF){ total=0; for(i=0;i<N;i++) scanf("%d%d",&x[i],&y[i]); sort(y,y+N); sort(x,x+N); for(i=0;i<N;i++) x[i]=x[i]-i; m=N/2; sort(x,x+N); //再排序 for(j=0;j<m;j++){ total+=abs(y[N-j-1]-y[j]); total+=abs(x[N-j-1]-x[j]); } printf("%d/n",total); } // system("pause"); return 0; }

士兵站队(pku1723)相关推荐

  1. 算法设计与分析: 2-7 士兵站队问题

    2-7 士兵站队问题 问题描述 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数坐标(x,y)表示.士兵们可以沿网格边上.下.左.右移动一步,但在同一时刻任一网格点上只能有一名士兵. ...

  2. POJ - 1723 Soldiers 士兵站队 排序+中位数

    [问题描述] 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数最表(x,y)表示.士兵可以沿着网格边上.下.左.右移动一步,但在同一时刻一个网格上只能有一名士兵.按照军官的命令,士兵 ...

  3. luogu1889 士兵站队

    luogu1889  士兵站队​​​​​​​ 时空限制    1000ms/128MB 题目描述 在一个划分成网格的操场上, n个士兵散乱地站在网格点上.由整数 坐标 (x,y) 表示.士兵们可以沿网 ...

  4. POJ1723士兵站队问题

    题目简述: POJ1723,N名士兵分散在不同位置,各自具有不相同的坐标{x,y},士兵每次可以沿x或y轴移动一步,若命令士兵沿平行x轴的方向排成一列,且移动过程中士兵位置不可重合,求N个士兵移动总数 ...

  5. 【P1889 士兵站队】(洛谷)

    题目描述 在一个划分成网格的操场上,n个士兵散乱地站在网格点上,由整数坐标 (x,y)表示. 士兵们可以沿网格边上.下.左.右移动一步,但在同时刻任一网格点上只能有 1 名士兵. 按照军官的命令,们要 ...

  6. 【日常学习】【数学】codevs3625 士兵站队问题题解

    题目描述 Description 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点用整数坐标(x,y)表示.士兵们可以沿网格边往上.下.左.右移动一步,但在同一时刻任一网格点上只能有一名士 ...

  7. 【排序专训】练习题 士兵站队(中位数应用) 解题报告

    [问题描述]      在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点由整数最表(x,y)表示.士兵可以沿着网格边上.下.左.右移动一步,但在同一时刻一个网格上只能有一名士兵.按照军官的 ...

  8. 中位数的应用—士兵站队问题

    pku 1723--士兵战队问题 Description N soldiers of the land Gridland are randomly scattered around the count ...

  9. 《Free Pascal 语言与基础算法》_数据排序_9_士兵站队问题题解

    题目描述 在一个划分成网格的操场上,n个士兵散乱地站在网格点上.网格点用整数坐标(x,y)表示.士兵们可以沿网格边往上.下.左.右移动一步,但在同一时刻任一网格点上只能有一名士兵.按照军官的命令,士兵 ...

最新文章

  1. celeron处理器_显卡和处理器哪个更重要?
  2. 一个在菜场看到的,神一般的大爷!
  3. Storm入门(九)Storm常见模式之流聚合
  4. mysql5.6启动占用内存很大的解决方法
  5. C++ 避免内存泄漏
  6. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。
  7. Opencv图像处理之改变颜色空间
  8. 京瓷 打印 打印机 账户_UV打印机买回来成废铁?不是选择不对,而是你想太多了……...
  9. android 接口报错409,android 在调用微信刷脸获取用户信息时,在还未完成识别时点击退出,WxPayFace 停止应用...
  10. Real World Haskell 第四章 函数式编程
  11. 给Eclipse中hibernate.cfg.xml配置文件加提示
  12. Tensorflow2.0学习(八) — tf.dataset自定义图像数据集
  13. 华为android强刷系统下载地址,华为C8815官方rom固件刷机包下载_华为C8815系统强刷升级包...
  14. 百度SEO工具黑侠超级站群助手v1.9
  15. IIS 部署.NetCore
  16. h5唤醒软键盘(数字键盘)
  17. 一文搞定计算机网络面试题
  18. 测试百科:白盒测试用例的设计(图文并茂,非常详细)
  19. 遇到《顺丰速运》app奔溃了,怎么回事呢?
  20. 微信大号平台运营简谈

热门文章

  1. 艾库尔科技创始人吕家俊——AI技术需要打破壁垒
  2. android4.0系统点击后颜色-浅蓝色
  3. python高等教育教材_《全国高等职业教育“十三五”规划教材PYTHON程序设计/赵增敏》【价格 目录 书评 正版】_中国图书网...
  4. 利用深度学习自动评价数百万张酒店图像
  5. 记录:百度地图开发 ios系统获取定位失
  6. 类型转换TryParse
  7. f5服务器维护,实现F5后端服务器访问
  8. python元组和列表的联系_Python元组和列表的区别
  9. KCSJ-13 课程设计-“手柄套“零件机械加工工艺及Φ12孔钻孔夹具设计(说明书+CAD装配图 零件图 毛坯图+工序卡+过程卡)
  10. 为什么很多人赚不到钱?赚了钱又存不了钱呢