http://community.topcoder.com/stat?c=problem_statement&pm=13625&rd=16278

首先,如果记得曼哈顿距离最小值那个问题,会想起一维的情况可证,点出现在中位数那里是最小的。这里也可证明,四个点,出现在中位数位置是最小的。

题解里的做法是,试探所有让某个想减的绝对值最小的情况。

我的代码有点丑,但过了:

#include <vector>
#include <algorithm> using namespace std; class TheConsecutiveIntegersDivOne {
public:
int find(vector <int> numbers, int k) {
sort(numbers.begin(), numbers.end());
int d = k / 2;
int left = 0;
int sumL = 0;
for (int i = left; i < left + d; i++) {
sumL += numbers[i];
}
int sumR = 0;
int right = left + d;
if (k % 2 == 1) {
right++;
}
for (int i = right; i < right + d; i++) {
sumR += numbers[i];
}
int result = sumR - sumL - d * d;
while (right + d < numbers.size()) {
sumL += numbers[left + d];
sumL -= numbers[left];
sumR += numbers[right + d];
sumR -= numbers[right];
result = min(result, sumR - sumL - d * d);
left++;
right++;
}
return result;
}
};

  

[topcoder]TheConsecutiveIntegersDivOne的更多相关文章

  1. TopCoder kawigiEdit插件配置

    kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...

  2. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  3. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  4. Topcoder几例C++字符串应用

    本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...

  5. TopCoder

    在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...

  6. TopCoder SRM 596 DIV 1 250

    body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...

  7. 求拓扑排序的数量,例题 topcoder srm 654 div2 500

    周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are number ...

  8. TopCoder SRM 590

     第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement     Fox Ciel is going to play Gomoku with her friend ...

  9. Topcoder Arena插件配置和训练指南

    一. Arena插件配置 1. 下载Arena 指针:http://community.topcoder.com/tc?module=MyHome 左边Competitions->Algorit ...

随机推荐

  1. FPGA基础学习(1) -- FFT IP核(Quartus)

    为了突出重点,仅对I/O数据流为steaming的情况作简要说明,以便快速上手,有关FFT ip核模型及每种设置详细介绍请参考官方手册FFT MegaCore Function User Guide. ...

  2. P3172 [CQOI2015]选数(莫比乌斯反演)

    [题目链接] https://www.luogu.org/problemnew/show/P3172 [题解] https://www.luogu.org/blog/user29936/solutio ...

  3. saltstack一键部署高可用

    一健推送apache [root@server1 minions]# cd /etc/salt/ [root@server1 salt]# vim master [root@server1 salt] ...

  4. Quartz中Cron详解

    Quartz中的cron跟Linux系统的cron定义不太一样(Linux从分开始) 特殊字符: * 用来表示包含一个范围内的任意值. 例如, 分钟位置的“*” 表示 “每分钟”. ?  当不特定指代 ...

  5. java在window系统的一些问题

    一般的, 在windows cmd上启动 utf-8编码的java应用 会有一些字符集问题 可以修改cmd的字符集编码为utf8 , chcp 65001 java -D有空格时 区别:  VM参数是 ...

  6. 4 练习: 使用eclipse开发

    1       练习: 使用eclipse开发 1.1  练习目标 本例讲述在使用eclipse如何创建groovy程序. 1.2  创建new Groovy project 本例假设你已经安装好了g ...

  7. python中bytes类型转换为str类型

    使用的原因:基于URL解析报文的时候,要使用str类型,但是提供的确实bytes类型,报错: TypeError: must be str, not bytes 所以就把bytes类型转换为str类型 ...

  8. Yiic执行php脚本

    用 Yii 写一个脚本,在 Linux 上运行这个脚本 1.编写好 XXXXCommand 继承 CConsoleCommand <?php namespace base\console; cl ...

  9. java——时间复杂度、动态数组

    O(n)不一定小于O(n^2),要具体来看,而我们说的这种时间复杂度其实是渐进时间复杂度,描述的是n趋近于无穷的情况. 动态数组的时间复杂度: 添加操作:O(n) addLast()的均摊复杂度为O( ...

  10. Vue自定义指令实现按钮级权限控制功能

    思路: 登录:当用户填写完账号和密码后向服务端验证是否正确,验证通过之后,服务端会返回一个token,拿到token之后(我会将这个token存贮到sessionStorage中,保证刷新页面后能记住 ...