贪心
虚心学习进步
主学C++、linux、网络编程
展开
-
贪心算法-----区间覆盖问题
(一)点覆盖区间(雷达/灌溉喷头)题目描述:假设海岸线是一条无限延伸的直线。陆地在海岸线的一侧,而海洋在另一侧。每一个小的岛屿是海洋上的一个点。雷达坐落于海岸线上,只能覆盖d距离,所以如果小岛能够被覆盖到的话,它们之间的距离最多为d。题目要求计算出能够覆盖给出的所有岛屿的最少雷达数目。对于每个小岛,我们可以计算出一个雷达所在位置的区间。 算法实现://2018年6月1...原创 2018-08-31 21:22:03 · 9389 阅读 · 4 评论 -
贪心算法-----poj 3253 Fence Repair(切木板)
DescriptionFarmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N (1 ≤ N ≤ 20,000) planks of wood, each having some integer lengt...原创 2018-08-26 14:31:51 · 5000 阅读 · 0 评论 -
剑指offer面试题14----剪绳子(动态规划,贪心算法)
一、动态规划时间复杂度O(n^2)#include <iostream>using namespace std;int maxProduct(int length){ if (length < 2) return 0; if (length == 2)//当绳子原长是2时候,因为必须要切,所以只能切成1和1 return 1; if (le...原创 2018-08-28 09:01:00 · 689 阅读 · 1 评论 -
Prim算法
MST(Minimum Spanning Tree,最小生成树)问题有两种通用的解法,Prim算法就是其中之一,它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任...原创 2018-08-06 09:47:14 · 34795 阅读 · 8 评论 -
【贪心算法】单源最短路径问题---狄克斯特拉算法
1、问题描述 给定带权有向图G =(V,E),其中每条边的权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 2、Dijkstra算法 Dijkstra算法是解单源最短路径问题的贪心算法。 其基本思想是,设置顶点集合S并不断地作贪...原创 2018-08-25 22:45:56 · 2894 阅读 · 0 评论 -
贪心算法-------部分背包问题
一,部分背包问题介绍首先介绍下0-1背包问题。假设一共有N件物品,第 i 件物品的价值为 Vi ,重量为Wi,一个小偷有一个最多只能装下重量为W的背包,他希望带走的物品越有价值越好,请问:他应该选择哪些物品?0-1背包问题的特点是:对于某件(更适合的说法是:某类)物品,要么被带走(选择了它),要么不被带走(没有选择它),不存在只带走一部分的情况。0-1背包问题中的物品想象的一个金子,你...原创 2018-09-01 08:06:34 · 35781 阅读 · 6 评论 -
贪心算法------多机调度
问题描述: 设有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的处理时间为t[i]。 任何作业可以在任何一台机器上面加工处理,但未完工之前不允许中断处理。任何作业不能 拆分成更小的 作业。 要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 算法...转载 2018-08-31 21:22:09 · 5123 阅读 · 2 评论