这个题和算法书上的2.22题类似,因此y轴只要求出中位数,然后所有的点都要移动到中位数。

x轴的情况有点不同, 想了好久终于想明白了。

首先将x升序排序(因为最终的相对位置是不变的),然后设首个元素的基准点为P,则|x[0] - (p+0)| + |x[1] - (p+1)| + |x[2] - (p+2)| + ... + |x[n-1] - (p+n-1)| = |x[0]-0-P| + |x[1]-1-P| + |x[2]-2-P| +...+|x[n-1]-(n-1)-P|,设z[i] = x[i] - i; 这时候就和y类似了, 只要对z数组升序排序,然后找到中位数,再计算就可以了。

ac的代码:

 1 //
 2 //  main.cpp
 3 //  tests
 4 //
 5 //  Created by zanglei on 13-9-29.
 6 //  Copyright (c) 2013年 zanglei. All rights reserved.
 7 //
 8
 9 #include <iostream>
10 #include <cstdio>
11 #include <cstdlib>
12 #include <string>
13 #include <vector>
14 #include <cassert>
15 #include <cmath>
16 #include <algorithm>
17 using namespace std;
18
19 #define MAX 10100
20
21 int x[MAX], y[MAX];
22
23 int main(int argc, const char * argv[])
24 {
25     int n;
26     cin >> n;
27     for (int i = 0; i < n; i++)
28         cin >> x[i] >> y[i];
29
30     int result = 0;
31     sort(y, y + n);
32     int mid = y[n / 2];
33
34     for (int i = 0; i < n; i++)
35         result += abs(y[i] - mid);
36
37     sort(x, x + n);
38
39     for (int i = 0; i < n; i++)
40         x[i] -= i;
41
42     sort(x, x + n);
43     mid = x[n / 2];
44
45     for (int i = 0; i < n; i++)
46         result += abs(x[i] - mid);
47
48     cout << result << endl;
49     return 0;
50 }

转载于:https://www.cnblogs.com/leiatpku/p/3351448.html

SOLDIERS(POJ 1723)相关推荐

  1. Bailian2734 十进制到八进制【入门】(POJ NOI0113-45)

    问题链接:POJ NOI0113-45十进制到八进制 2734:十进制到八进制 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个十进制正整数转化成八进制. 输入 一行,仅含一个十进 ...

  2. Bailian2676 整数的个数【入门】(POJ NOI0105-11)

    问题链接:POJ NOI0105-11 整数的个数 2676:整数的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定k(1 < k < 100)个正整数,其中每个数 ...

  3. Bailian4029 数字反转【进制】(POJ NOI0105-29)

    问题链接:POJ NOI0105-29 数字反转 4029:数字反转 总时间限制: 1000ms 内存限制: 65535kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数 ...

  4. Bailian2735 八进制到十进制【入门】(POJ NOI0113-46)

    问题链接:POJ NOI0113-46 八进制到十进制 2735:八进制到十进制 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个八进制正整数转化成十进制. 输入 一行,仅含一个八 ...

  5. Silver Cow Party (POJ - 3268 )

    Silver Cow Party (POJ - 3268 ) 这道题是我做的最短路专题里的一道题,但我还没做这个,结果比赛就出了,真是.......... 题目: One cow from each ...

  6. 吴昊品游戏核心算法 Round 7 —— 熄灯游戏AI(有人性的Brute Force)(POJ 2811)

    暴力分为两种,一种属于毫无人性的暴力,一种属于有人性 的暴力.前面一种就不说了,对于后面一种情况,我们可以只对其中的部分问题进行枚举,而通过这些子问题而推导到整个的问题中.我称之为有人性的Brute ...

  7. 【二分】Best Cow Fences(poj 2018)

    Best Cow Fences poj 2018 题目大意: 给出一个正整数数列,要你求平均数最大,长度不小于M的字串,结果乘1000取整 输入样例 10 6 6 4 2 10 3 8 5 9 4 1 ...

  8. 昂贵的聘礼(poj 1062)

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  9. 主席树学习小结(POJ 2104)

    在高中的时候就听到过主席树了,感觉非常高端,在寒假的时候 winter homework中有一题是查找区间第K大的树,当时就开始百度这种网上的博客,发现主席树看不懂,因为那个root[i],还有tx[ ...

最新文章

  1. 脑细胞膜等效神经网路
  2. 经典shell面试题整理
  3. 《Flink官方文档》示例总览
  4. (JavaWeb)会话跟踪技术Cookie和Session(重点)
  5. SAP CRM销售订单创建时text determination的调试细节
  6. linux网络编程函数——地址复用setsockopt()
  7. ssm整合 报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx
  8. python实现杨辉三角形博客园_Python实现杨辉三角
  9. python字符串用法_笔记:python字符串的使用
  10. 第二十四章 异常和错误处理 1异常
  11. Perl文件处理示例——批量添加Copyright版权信息
  12. PHP执行耗时脚本实时输出内容
  13. Redis 中的事件驱动模型
  14. js检查名字手机号是否规范,js去除空格
  15. C语言简单连点器网课必备
  16. DFS+记忆化搜索 -- 简单练习
  17. python处理图片像素_Python 处理图片像素点的实例
  18. 部分软件可以正常打开,但图标无法正常显示
  19. ps3自建服务器,PS3新手图文教程之网络设置
  20. javaWeb文档预览之office转pdf(附详细代码)

热门文章

  1. OLAP与OLTP的区别?
  2. python opencv数字识别_基于模板匹配的手写数字识别(python+opencv)
  3. 霍尼韦尔公布2019年十大发明
  4. 不见液晶电视不上轿的新娘,新郎愤而转身娶旧爱
  5. python 圆括号和方括号一样吗_Python中用方括号和圆括号括起来的列表有什么区别?...
  6. mysql触发器教程
  7. 用老电脑和老U盘Diy硬件防火墙
  8. Rest-Assured完整的测试例子
  9. sqlserver主要的环境变量
  10. [pie+libc]national2021_pwny