随笔分类 - 刷题解析
将一些做题的思路记录下来,希望能帮助到刷题的朋友
摘要:哈希表 一、概述 哈希算法是通过哈希函数,将一种数据转化为能够用变量或数组下标表示的数,通过哈希函数转化得到的值,称之为哈希值。哈希表的查找时间几乎是常数时间,哈希函数是决定哈希表查找效率的关键,本次就讲解其中之一的除余法。 二、例题 通过图书管理这道题,让我们开始学习这个算法。 题目描述 图书管理
阅读全文
摘要:生日蛋糕 解题思路: 有的时候,将题读懂,问题就解决一半了。 题中给出体积和层数,要求合理安排每一层的半径Ri、高度Hi,使得蛋糕的外表面积最小(最下层的底面除外),要求有:Hi > Hi+1且Ri>Ri+1(也就是说,蛋糕越往上越小)。 计算的过程中,直接计算侧面积就可以,上表面积的值就是最下底层
阅读全文
摘要:数的划分 解题思路 本题的意思是将一个数n化解为k份,有几种不同的方案。例如k=3的时候,a+b+c=n,求a、b、c有几种不同的取值。为了避免出现重复,搜索的时候按照从大到小搜索。依次枚举a、b、c的值进行判断。 直接搜程序的运行速度是特别慢的,需要控制好搜索的上下界。 约数条件: (1)由于我们
阅读全文
摘要:一、前言 刚开始学习搜索算法的时候,它给我的感觉就是加了条件的枚举,特别暴力,将所有的情况列出来找答案。时间效率低到让人难以忍受。用深搜做题更是容易被卡时间,本期我们来学习一下剪枝技巧,对程序优化的一种基本方法,可以极大的提高时间效率。 二、正文 1、什么是剪枝? 简单的来讲就是通过某种判断,避免一
阅读全文
摘要:一、适用场景 三分算法适用于求解凸性函数的极值问题,二次函数就是一个典型的单峰函数。 二分利用的是函数的单调性,三分算法利用的是函数的单峰性。 在区间[l,r],令m1 = l + (r-l)/3, m2 = r - (r-l)/3,分别位于1/3、2/3处,接着计算这两个点的函数值, 如果f(m1
阅读全文
摘要:一、适用范围 二分算法的基本用途是在单调序列或单调函数中做查找操作,因此问题的答案具有单调性的时候,我们就可以通过二分把求解转换为判定。 二分算法的思想是不断将待求解区间平均分成两份,根据求解区间中点的情况来确定目标元素所在的区间,这样就把解的范围缩小一半。 二、代码实现 1、整数二分: int e
阅读全文
摘要:1、带期限和罚款的单位时间任务调度 智力大冲浪 题目描述 小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者 元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则: 首先,比赛时间分为 个时段,它又给出了很多小游戏,每
阅读全文
摘要:1、流水作业调度问题(解题思路在下边) 加工生产调度 题目描述: 某工厂收到了 个产品的订单,这 个产品分别在 A、B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工。 某个产品 在 A,B 两车间加工的时间分别为 。怎样安排这 个产品的加工顺序,才能使总的加工时间最短。 这里所说
阅读全文
摘要:1、区间覆盖问题(喷水装置) 喷水装置这道题,将每个圆形区域,抽象成一个覆盖在草地上的矩形区域,选择一个最少的数量,使得喷洒面积刚好能够覆盖草地。(如红线部分) 将所有区域按照左端点从大到小排序,依次处理每个区间,每次选择下一个区间的时候,要求选择能够覆盖当前区间的右端,并且保证下一个区间的右端是最
阅读全文
摘要:一开始以为贪心算法很简单,“不就是从问题初始状态出发,依次选择最优选项吗”,后来发现真不简单。 贪心算法五个经典应用: 1、选择不相交区间问题(例题:活动安排) 题意: 给定n个开区间(a,b),选择尽量多个区间,使得这些区间两两没有公共点。 做法: 将右端点从小到大排序,然后依次考虑每一个区间,如
阅读全文

浙公网安备 33010602011771号