AcWing 算法基础课 贪心

一、区间问题

  1、区间选点、最大不相交区间数量

  先按右端点排序,遇到完全不相交的区间则更新当前点,并将区间数量+1.

  2、区间分组

  将区间分组使组内区间不相交,求分组的最小数量。

  左端点从小到大排序,从前往后处理每个区间,判断是否能放入当前的某个组中,

  如果能,则更新组的右端点,否则开新组。

  3、区间覆盖

  选择多个给定区间,将某一个区间覆盖,求最小选择区间数

  左端点从小到大排序

  从前往后枚举,每次选择覆盖end,且右端点最大的区间,并用右端点更新当前end

二、哈夫曼树

  AcWing 148.合并果子

  每次挑出最小的两堆进行合并

三、排序不等式

  AcWing 913.排队打水

  挑选时间最小的最先打水。 

四、绝对值不等式 

  AcWing 104. 货仓选址

  选择区间中的点,可以使到区间端点的距离和最小

五、推公式

  AcWing 125. 耍杂技的牛

  wi+si按从小到大排序,与国王游戏同解

posted @ 2022-02-10 12:51  80k  阅读(169)  评论(0)    收藏  举报