
贪心算法
文章平均质量分 56
2025黄锦豪
一个学到动态规划的小学生
展开
-
1159. 【贪心算法】加工生产调度
可以大胆猜想,要使车间的空闲时间最短,就要把在A车间上加工时间最短的产品最先加工,这样使得B车间能在最短的空闲时间内开始加工;把在B车间上加工时间最短的产品放在最后加工,这样使得A车间用最短的时间等待B车间完工。很明显第一个产品在A车间上加工时,B车间必须等待,最后一个产品在B车间上加工时,A车间也在等待B车间的完工。(1)就要把在A车间加工时间最短的部件优先加工,这样使得B车间能以最快的速度开始加工。所以我们应该让在A车间上加工时间短的产品优先,而在B车架上加工时间短的产品排在后面。原创 2025-01-07 21:02:06 · 233 阅读 · 0 评论 -
1157. 【贪心算法】最大乘积
一个正整数一般可以分为几个互不相同的自然数的和,如3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4,…现在你的任务是将指定的正整数n分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。大于或等于 �n ,然后找到一个合适的数并更改(如果等于 �n 就不更改),使得和满足要求。第一行是分解方案,相邻的数之间用一个空格分开,并且按由小到大的顺序。让你将一个正整数 n 分解成若干个自然数之和,要求这些数的乘积最大。:当 �=3,4n=3,4 时并不符合上述的贪心策略,需要特判。原创 2025-01-07 20:58:32 · 206 阅读 · 0 评论 -
1155. 【贪心算法】智力大冲浪
一旦出现一个不可能在规定期限内完成的任务,则把其扔到最大的一个空时间段,因为不能完成的任务在任意一个时间段中罚款数额都是一样的,这样得到的结果必然是最优的。贪心策略是让扣款数额大的尽量在规定的期限内完成,这样我们就先把这些任务按照扣款的数额进行排序,把大的排在前面,进行放置。因为不同的小游戏不能准时完成时具有不同的扣款权数,而且是求问题的最优解,所以很容易想到用贪心算法求解。假如罚款最多的一个任务的完成期限是k,我们应该放在小于等于k的最靠后的时间段。原创 2025-01-07 20:55:11 · 188 阅读 · 0 评论 -
1151. 【贪心算法】排座椅
同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是 (i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。接下来D行,每行有4个用空格隔开的整数,第i行的4个整数Xi,Yi,Pi,Qi, 表示坐在位置(Xi,Yi)与(Pi,Qi)的两个同学会交 头接耳(输入保证他们前后相邻或者左右相邻)。第一行,有5各用空格隔开的整数,分别是M,N,K,L,D(2<=N,M<=1000,0<=K< M,0<=L<N,D<=2000)。在该方案下,上课时交头接耳的学生对数最少。原创 2025-01-07 20:52:11 · 255 阅读 · 0 评论 -
1144. 【贪心算法】合并果子
接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为 12。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。先排序,选取最小的两堆果子,然后合并,插入。这道题很有意思,也很清真。以上是精神,代码写出来大概就是,桶排,建立两个队列,排序结果放进第一个当中,合并结果放在第二个当中,每次选从两个队列队头选取比较小的合并。在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。原创 2025-01-07 20:44:13 · 274 阅读 · 0 评论 -
1143. 【贪心算法】纪念品分组
元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。原创 2025-01-07 20:39:05 · 298 阅读 · 0 评论 -
1139. 【贪心算法】均分纸牌
B. 从左到右,根据当前的前i堆的和sum(i),与目标的前i堆的和sumstd(i),进行比较,如果多了,则向后方移动一次纸牌(更新a[i], sum[i], a[i+1]);在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;C. 从右向左,根据每堆的纸牌数a[i],与每堆目标纸牌数ave比较,如果多了,则向前移动纸牌(更新a[i], sum[i-1], a[i-1])(1)总思路:暴力纯模拟(实际的真实、可移动的操作过程),如果该题,需要打印每步实际的移动方法,这个做法是可以输出的。原创 2025-01-07 20:34:41 · 253 阅读 · 0 评论 -
1140. 【贪心算法】删数问题
键盘输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。很明显,就是删去下坡数,也就是这个例子中的7(比5大)、5(比4大)、4(比3大)、8(比最后一个大(假设有,并为0))。第四次删的数为8,和最后一个数(应该是a[7](假设有,并为0))比较,发现5跟大。第一次删的数为7,和5比较,发现7跟大(简单表述)第二次删的数为5,和4比较,发现5跟大。第三次删的数为4,和3比较,发现4跟大。原创 2025-01-07 20:31:22 · 218 阅读 · 0 评论