贪心
Jayphone17
这个作者很懒,什么都没留下…
展开
-
蓝桥杯——2018年C++A组第10题:付账问题【贪心】
一、题目几个人一起出去吃饭是常有的事。但在结帐的时候,常常会出现一些争执。现在有 n 个人出去吃饭,他们总共消费了 S 元。其中第 i 个人带了 ai 元。幸运的是,所有人带的钱的总数是足够付账的,但现在问题来了:每个人分别要出多少钱呢?为了公平起见,我们希望在总付钱量恰好为 S 的前提下,最后每个人付的钱的标准差最小。这里我们约定,每个人支付的钱数可以是任意非负实数,即可以不是1分...原创 2020-02-19 00:29:55 · 600 阅读 · 0 评论 -
贪心——时间/事件/任务调度问题
问题分析:会议/课程/任务调度问题也是典型的贪心策略问题。比如说,会议安排没有的事能在有限的时间内召开更多的会议。(任何两个会议不能同时进行)算法设计:初始化:将n个会议的开始事件、结束时间存放在结构体数组中,如果需要知道选中了哪些会议,还需要在结构体中增加会议编号,然后按结束时间从小到大排序,结束时间相等时,按开始事件从大到小排序。 根据岩心策略就是选择一个具有最早结束...原创 2019-09-26 17:20:05 · 771 阅读 · 0 评论 -
贪心——背包问题(非DP 01背包)
问题分析:假设山洞中有n中宝物,每种宝物都有一定的重量w和相应的价值v,马车运载能力有限,只能运走m重量的宝物,一种宝物只能拿走一件,宝物可以分割。那么怎么样才能让马车运走宝物的价值最大呢?我们可以尝试贪心策略:每次选价值最大的宝物装入背包。 每次选重量最小的宝物装如背包。 每次挑选单位重量价值最大的宝物(性价比最大)。算法设计:数据结构及初始化。将n中宝物的重量...原创 2019-09-26 11:35:46 · 485 阅读 · 0 评论 -
贪心入门——最优装载问题
问题描述:贪心算法最简单的就是用来解决最优装载问题,在确定最大装载容量的情况下,要求装载的物品的数量尽可能多,那么优先把重量小的物品放进去,在容量固定的情况下,装的物品最多。采用重量最轻者先装的岩心选择策略,从局部最优达到全局最优,从而产生最优装载问题的最优解。算法设计:当载重量为定值c时,Wi越小,可装载的物品数量n最大。只要依次按照选择最小的重量的物品,直到不能再装为止...原创 2019-09-26 10:48:13 · 367 阅读 · 0 评论 -
贪心、图论——单源最短路径Dijkstra算法
1.问题分析:单源最短路径问题。给定一个有向带权图G=(V,E),其中每条边的权是非负实数(Dijkstra不支持处理带负权边的)。此外给定V中的一个顶点,成为源点。现在要计算从源点到各顶点的最短路径长度,这里路径长度指路上各边的权之和。2.算法设计:Dijkstra算法是解决单源最短路径的贪心算法,它求出长度最短的一条路径,再参照最短路径求出长度次短的一条路径,直到求出从源...原创 2019-09-28 19:18:15 · 535 阅读 · 0 评论 -
贪心——最小生成树Kruskal算法
构造最小生成树还有一种算法,Kurskal算法:设G=(V,E)是无向连通带权图,V={1,2,…,n};设最小生成树T=(V,TE),该树的初始状态为只有n个顶点而无边的非连通图T=(V,{}),Kruskal算法将这n个顶点看成是n个孤立的连通分支。它首先将所有的边按权值从小到大排序,然后只要T中选中的边数不到n−1,就做如下的贪心选择:在边集E中选取权值最小的边(i,j),如果将边(i,j...原创 2019-10-04 13:52:46 · 1028 阅读 · 0 评论