这题比赛的时候不会做,原来是区间暴力。
其实理解起来也觉得挺简单的,可能是看题的时候被交换这个思想束缚了自己的解题吧,所以一直想不出什么好的做法,看了别人的解题茅舍顿开……
解法:就是在这个数列中先选出一段我们要求的区间,如果在中间取的这段的话,那旁边两段就是剩余的段,也就是我们需要至少k次交换剩余段中最大的值与刚开始选出的段交换最小的值,然后求这选出的这段的和,如此下去更新最大值就得到结果了...
分类:
其他好文 时间:
2014-07-22 23:03:35
阅读次数:
339
一个轮流取数的游戏,取得的值最大者胜,这里要求结果。
这里使用一下deque数据结构吧。当然这里使用一般数列,用two points的思想解决也是可以的。
deque是可以两头取数都很快的容器。很适合本题这样的情况...
分类:
其他好文 时间:
2014-07-22 23:00:16
阅读次数:
286
一. 什么是二分查找
二分查找又称为折半查找,该算法的思想是将数列按序排列,采用跳跃式方法进行查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。以此类推不断缩小搜索范围。
二. 二分查找的条件
二分查找的先决条件是查找的数列必须是有序的。
三. 二分查找的优缺点
优点:比较次数少,查找速度快,平均性能好;...
分类:
编程语言 时间:
2014-07-22 23:00:14
阅读次数:
512
本文均来自PythonCookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示。#-*-coding:utf-8-*-
‘‘‘
文件相关的操作:
read()
open()
两个参数:
第一个:文件路径
第二个:打开文件的模式
常..
分类:
编程语言 时间:
2014-05-03 02:00:18
阅读次数:
417
当我们打开手机访问点评客户端的时候,访问商户的请求是如何到达对应某台应用服务器的?当有很多XX宽带的用户投诉说我大点评某某域名无法打开但是我们却找不出任何问题的时候,我们就想到会不会是宽带运营商的问题。今天与大家分享的话题,主要是跟我们的软负载集群和Nginx这个..
分类:
其他好文 时间:
2014-05-03 01:10:34
阅读次数:
739
本文均来自PythonCookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示。#-*-coding:utf-8-*-
‘‘‘
检查一个文本是字符串还是二进制
思想:如果字符串中包含了空值或者其中含有超过30%的..
分类:
编程语言 时间:
2014-05-03 00:55:27
阅读次数:
375
美女住酒店一晚结账时账单800元,她抱怨太贵。经理说这是标准收费,酒店附设泳池、健身房和wifi。美女说自己完全没使用,经理说饭店有提供,是她自己不用。 女客人打开皮包掏钱付账,但说要扣除经理和她共度春宵的700元,只拿出100元。经理急呼:“我哪有?”女客人:“我有提供,是你自己不用!”
【习惯】
乞丐到小王家乞讨,他给十块,第二天乞丐又去,又给十块,持续两年。一天只给五块,乞丐:以前给十块...
分类:
其他好文 时间:
2014-05-02 23:24:26
阅读次数:
392
从Linux2.5开始Linux实现了0(1)调度算法, 算法的思想要点在于设定动态的nice值确定优先级, 在优先级数组调度(数组最大长度是固定常数) 简而言之,不管系统中有多少进程需要调度都可以在o(1)的时间复杂度内完成调度,是不是很吊啊?但是实践证明(我没证明,文献说的) o(1)对i/o交互型的调度体验上表现很差 轮转周期很不灵活,主要原因在于调度出发点采用粒度很大时间片进行轮换,诚然整体负载会比较好,但是对于i/o交互型的,我们理想的调度策略是采用处理器使用比而不是时间片来分配, ...
分类:
系统相关 时间:
2014-05-02 21:18:41
阅读次数:
460
操作系统基本分页存储管理方式
连续分配内存方式会形成许多“碎片”,通过紧凑的方式将碎片拼接成一块大的空间,但是拼接过程系统开销太大。如果允许将一个进程直接分散地装入到许多不相邻的分区中,那么就不需要再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。
在分页管理方式中,如果不具备页面对换功能(...
分类:
其他好文 时间:
2014-05-02 02:19:11
阅读次数:
314
学Linux的人肯定都听说过一些开源协议,具体这些协议有什么区别?如果要开源自己的代码,需要选择什么样的开源协议呢?今天要说4个协议:BSD、GPL、LGPL和MIT。 BSD代码鼓励代码共享,但需要尊重代码作者的著作权;GPL的出发点是代码的开源和免费使用,但不允许修改后和衍生的代码,做为闭源的商业软件发布和销售。LGPL允许商业软件通过类库引用方式使用LGPL类库而不需要开源商业软件的代码。MIT是和BSD一样宽泛的许可协议。...
分类:
其他好文 时间:
2014-04-30 22:18:39
阅读次数:
349