![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心算法
壹零叁玖
多多重复 百炼成钢
展开
-
湖大ACM10155——Making change
此题目为湖南大学校内acm网站上的10155题,算法实验课的线上OJ题目,在此记录。原创 2020-05-25 13:17:04 · 621 阅读 · 0 评论 -
磁带最优存储问题及最优服务次序问题
问题一题目描述根据输入的程序读取概率和放在磁带上的长度计算出最小的平均读取时间。题目分析我们首先将输入的所有读取概率加和作为求小数概率的分母,最后求出对应概率乘以放在磁带上的长度,才得到了一个程序的读取时间。最后按照一定顺序排列这些文件的读取时间求出最小的平均读取时间。这是一个典型的贪心法的问题,因为后面读取的文件要等待前面读取的文件读完,所以我们应该把读取时间较短的文件排在前面,否则后面...原创 2020-05-05 19:06:43 · 773 阅读 · 0 评论 -
C++贪心算法会场安排问题
问题描述安排好所有的活动,并占用最少的会场。题目分析这个问题和我们之前说过的活动安排很相似,但是我们这次要求的是利用最少的会场。如果所有活动都是相容的,使用一个会场就可以举办完。一个会场可以举办一些相容的活动,而不相容的活动只能通过新会场举办。所以这个问题,我们很容易可以想到利用并查集来解决,判断两个活动是否相容(前一个活动的结束时间<=后一个活动的开始时间),如果相容,就将二者连...原创 2020-04-21 22:04:39 · 2226 阅读 · 6 评论 -
C++贪心算法单源最短路径问题——Dijkstra算法
问题描述给定一个带权有向图G=(V,E),其中每条边的权是非负实数。另外,给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路径长度。这里的路长度是指路上各边权之和。这个问题通常称为单源最短路径问题。算法基本思想Dijkstra算法是解决单源最短路径问题的一个贪心算法,其基本思想是,设置顶点集合S,并不断地做贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路...原创 2020-04-21 21:48:00 · 6788 阅读 · 0 评论 -
C++贪心算法之背包问题
问题描述题目分析这个问题和0-1背包问题有一定的差别,0-1背包问题的解决方法可以参加我的另一篇文章0-1背包问题这两类问题都具有最优子结构性质。对0-1背包问题,设A是能够装入容量为c的背包的具有最大价值的物品集合,则为Aj = A-{j}是n-1个物1,2,…j-1,j+1…n可装入容量为c-wj的背包的具有最大价值的物品集合。对于背包问题,类似地,若它的一个最优解包含物品j,则从该最...原创 2020-04-20 19:40:27 · 1618 阅读 · 0 评论 -
C++贪心算法之最优装载问题
问题描述题目分析贪心问题最重要的是满足最优子结构性质和贪心选择性质。最优装载问题要求在装在体积不受限制的情况下,尽可能多的集装箱装上轮船,也就是说我们需要让上船的集装箱数目最多,那么我们就应该尽量每次让重量最小的集装箱上船,这样的话船的最大重量就会剩余更多。所以这个问题我们利用贪心算法来每次找到当前重量最小的集装箱上船,直到船满或者集装箱重量大于船的剩余最大重量。贪心选择性质:我们写一...原创 2020-04-20 18:44:49 · 4212 阅读 · 0 评论 -
贪心算法之活动安排问题C++实现
问题描述设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。这个活动i都有要求使用该资源的起始时间si和结束时间fi,且si<fi。如果选择了活动i,则它在半开时间区间[si,fi)内占用资源。若区间[si,fi)与[sj,fj)不相交,则称活动i与活动j是相容的。也就是说,当si>=fj或者sj>=...原创 2020-04-15 13:06:40 · 1511 阅读 · 0 评论