「猙塛」弾杺綜鞊

貌似问最多最少的都可以扯扯贪心

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

题目大意:

一些树,可以向左倒也可以向右倒,条件是倒下的地方没有其他树,问最多倒多少树

贪心策略:

首先不用考虑第一颗树和最后一颗,一定能倒下(第一颗左边没树,最后一颗右边没树)
然后其他的树,能向左倒就向左倒,不能就向右,然后更新右端点

posted @ 2020-10-11 08:45  _乀aakennes  阅读(350)  评论(0编辑  收藏  举报
levels of contents