摘要: 如题,贪心算法隶属于提高算法效率的方法,也常与动态规划的思路相挂钩或一同出现。下面介绍几个经典贪心问题。(参考自刘汝佳著《算法竞赛入门经典》)。P.S.下文皆是我一个字一个字敲出来的,绝对“童叟无欺”,哈哈。(。⌒∇⌒) 耗费了我的很多时间,所以——希望对大家有帮助啊~ (=^‸^=) 一、背包相关 阅读全文
posted @ 2016-11-03 21:27 konjac蒟蒻 阅读(4923) 评论(0) 推荐(1) 编辑
摘要: 题意:要求在一个N*N的棋盘上放N个车,使得它们所在的行和列均不同,而且分别处于第 i 个矩形中。 解法:问题分解+贪心。 由于行、列不相关,所以可以先把行和列均不同的问题分解为2个“在区间[1,n]中选择n个不同的整数,使得第 i 个整数在[Li,Ri]内”的问题。 接下来的贪心很重要:先使区间R 阅读全文
posted @ 2016-11-03 20:49 konjac蒟蒻 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个由N个片段构成宽度的洞穴,已知洞顶 si 和洞底 pi 的高度,要求储存尽量多的燃料。 解法:O(n),分别从1到N和从N到1扫一遍,调整每个片段合法的最大高度,求出答案。 阅读全文
posted @ 2016-11-03 19:02 konjac蒟蒻 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 题意:有T组数据,N个点,M条边,每条边有一定的花费。问最小生成树和次小生成树的权值。 解法:具体请见 关于生成树的拓展 {附【转】最小瓶颈路与次小生成树}(图论--生成树) 阅读全文
posted @ 2016-11-03 16:22 konjac蒟蒻 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 题意:有M只猴子,他们的最大跳跃距离为Ai。树林中有N棵树露出了水面,给出了它们的坐标。问有多少只猴子能在这个地区露出水面的所有树冠上觅食。 解法:由于要尽量多的猴子能到达所有树冠,便用Kruskal求一次MST最小生成树,也就得到了最大边最小的最小瓶颈生成树。在用这个最大边权计算合法的猴子树。 P 阅读全文
posted @ 2016-11-03 14:20 konjac蒟蒻 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 题意:平面上有N个石头,给出坐标。一只青蛙从1号石头跳到2号石头,使路径上的最长便最短。输出这个值。(2≤N≤200) 解法:最小瓶颈树。而由于这题N比较小便可以用2种方法:1.最短路径中提到过的Floyd算法,利用DP思想枚举出所有情况,O(n3)。具体关于Floyd算法的一些解释得等我过几天写一 阅读全文
posted @ 2016-11-03 11:32 konjac蒟蒻 阅读(696) 评论(0) 推荐(0) 编辑