貌似问最多最少的都可以扯扯贪心
1.P3045 [USACO12FEB]Cow Coupons G
题目大意:
(n)头牛,(m)块钱,(k)张优惠券,给每头牛的原价和用优惠券的优惠价,问最多能买几头
贪心策略:
反悔贪心:
按优惠价排序后的前(k)头牛一定在选的牛内
对于k之后的牛,考虑什么情况下使用优惠券
当降价幅度比之前用过优惠券的更优时,回撤之前降价幅度最低的券
即满足(c_i+p_j-c_j<p_i)的条件,(j)是当前牛,(p_i)表示原价,(c_i)表示优惠价
至于第一句话的正确性,康康就行
2.P1325 雷达安装
题目大意:
给一些坐标和雷达范围,限定雷达只能在(x)轴上,坐标在一二象限,问最少放多少雷达能覆盖所有坐标
贪心策略:
以每一个坐标为点,划个雷达范围的圆,看与最前方的点是否能在(x)轴相交,不能就更新为最前方的点
正确性很显然:能相交就说明能共用雷达
3.P1792 [国家集训队]种树
题外话:哇,我那个时候竟然做过紫题,震惊(然而貌似是上课讲的)
题目大意:
(n)个位置,围成一圈,每个位置上种树得到的贡献不同,每个树两边的坐标不能种树,问最大贡献
贪心策略:
对每个位置都向左右扩展,用堆来实现
以当前位置为起点,向左右建树,划定当前树的管辖范围和当前范围的总贡献
每取堆上一个点,就向左右扩展并更新贡献
新贡献为在:新栽的树-原贡献
举例:
1 2 3 4 5
a b c d e
3入堆,左区间为2,右区间为4,贡献为b+d-e
取出堆顶 3
左右扩展至1 5
新贡献为a+e-(b+d-e)
balabala
4.P4823 [TJOI2013]拯救小矮人
题目大意:
几个矮子,给定手的长度和身子的高度,最顶上的矮子可以用手,能够到顶就能出去,问最多出去几个
贪心策略:
类似反悔贪心,先让个子和手都大的压在下面,小的放在上面,如果上面出不去,说明他永远出不去了,直接拉到底,换个人在上
由于换的人不能选择,所以直接跑背包
也可以理解为,可能一个人的个子大,手短,不逃出去更优,所以跑背包
5.CF545C Woodcutters
题目大意:
一些树,可以向左倒也可以向右倒,条件是倒下的地方没有其他树,问最多倒多少树
贪心策略:
首先不用考虑第一颗树和最后一颗,一定能倒下(第一颗左边没树,最后一颗右边没树)
然后其他的树,能向左倒就向左倒,不能就向右,然后更新右端点