
贪心算法
文章平均质量分 50
贪心算法
Andy_Xie007
这个作者很懒,什么都没留下…
展开
-
【2023湖南大学ACM新生赛】M. Min Volume Difference(最小容积差)
比如在纸上写下1,2,3,4,5,6,7这几个数字,代表从时刻1到7的流量,那么容易发现,将七个数从后往前两两分组,那么一共可以分成三组:{7,6},{5,4},{3,2},还剩下一个1。进一步分析,对于能两两分成奇数个组的情况(k % 4 = 2),例如1,2,3,4,5,6这几个数字可以分成以下三组:{6,5},{4,3},{2,1}。n代表总时长,k代表单位流量,在时刻 i (1原创 2023-12-31 13:15:00 · 802 阅读 · 0 评论 -
#10002 「一本通 1.1 例 3」喷水装置
我们知道,在一个平面上两个圆的位置关系有3种:相交,相切,相离。而对于这道题而言,如果最后喷头能够覆盖题设面积且喷头个数最小,则任意相邻的两个圆必定相交。同时,考虑到必须完整地覆盖到矩形边框,根据勾股定理,两个相邻圆应该满足下列关系:下图是一个恰好覆盖的取等临界情况:由于每个圆的位置和半径不相关,要想两个相邻圆覆盖面积最大的局部最优解,应当从最右端的圆开始,向左依次判断是否满足上述不等关系。因此有关键步骤如下:1.对所有圆按照坐标大小从小到大排序。原创 2023-10-19 18:50:21 · 582 阅读 · 0 评论 -
#10001 「一本通 1.1 例 2」种树
按照需求路段的结束位置升序排列,然后检查需求路段内已种树木数量,如果没有种满,依次从结束位置开始种树,直到种满,检查下一路段。最后输出种植的树木棵数。下面是一些重点片段:1.定义结构体info2.定义比较函数cmp3.定义数组roadroad是一个布尔数组,用于记录每个路段是否已经种植了树木的情况。数组大小为 30005,根据题目描述,路段数最多为 30000。4.初始化变量cont为 0,用于记录种植的树木总数;原创 2023-10-18 00:11:47 · 166 阅读 · 0 评论 -
#10003 「一本通 1.1 例 4」加工生产调度
不妨把所有数据分为以下两类:第一类,工件在A车间加工时长小于等于B车间;第二类,工件在A车间加工时长大于B车间。如果对第一类零件进行生产安排,由于任意零件在A车间加工时长大于B车间,无论怎么安排,第一类零件在A车间加工总时间总是大于B车间;相似地,第二类零件在B车间加工总时间大于A车间,由此,可以得出,如果先安排第一类零件,再安排第二类零件,就可以取长补短,实现最短加工时长。对于大类内部的排序,由画图得,一类零件按A车间加工时间升序排列,二类零件按B车间加工时间降序排列。原创 2023-10-20 22:53:53 · 119 阅读 · 1 评论 -
#10004. 「一本通 1.1 例 5」智力大冲浪
思路很明确,首先要保证扣款最多的项目尽量完成,因此先将项目按照扣款金额从大到小排序,又为了尽可能让更多项目在期限内完成,扣款项目应当从自己的截止日期开始依次向前遍历,寻找离期限最近且没有项目安排的日期。原创 2023-10-20 23:21:50 · 249 阅读 · 1 评论 -
#10000 「一本通 1.1 例 1」活动安排
使用贪心算法来解决这个问题。首先将活动按照结束时间从小到大进行排序,然后依次选择结束时间最早的活动判断是否能加入到最大集合中并进行相应的计数。大致证明如下:原创 2023-10-17 23:43:55 · 153 阅读 · 1 评论