题目描述
有C头奶牛进行日光浴,第i头奶牛需要minSPF[i]到maxSPF[i]单位强度之间的阳光。
每头奶牛在日光浴前必须涂防晒霜,防晒霜有L种,涂上第i种之后,身体接收到的阳光强度就会稳定为SPF[i],第i种防晒霜有cover[i]瓶。
求最多可以满足多少头奶牛进行日光浴。
输入格式
第一行输入整数C和L。
接下来的C行,按次序每行输入一头牛的minSPF和maxSPF值,即第i行输入minSPF[i]和maxSPF[i]。
再接下来的L行,按次序每行输入一种防晒霜的SPF和cover值,即第i行输入SPF[i]和cover[i]。
每行的数据之间用空格隔开。
输出格式
输出一个整数,代表最多可以满足奶牛日光浴的奶牛数目。
数据范围
1 ≤ C,L ≤ 2500
1 ≤ minSPF ≤ maxSPF ≤ 1000
1 ≤ SPF ≤ 1000
输入样例:
3 2
3 10
2 5
1 5
6 2
4 1
输出样例:
2
| 难度:简单 |
| 时/空限制:1s / 64MB |
| 来源:《算法竞赛进阶指南》 |
分析:
本题的贪心策略是按照minspf递减的顺序把奶牛进行排序,依次考虑每头牛。对于每头牛,扫描一遍所有的防晒霜,在这头牛能用(指的是该防晒霜的强度符合牛的范围且瓶数还用剩余)的防晒霜里找一个spf值最大的防晒霜使用。(来源:《算法竞赛进阶指南》)
下面验证该贪心策略的正确性:
奶牛已按照minspf值递减排序,那么对于当前奶牛可选的

博客介绍了如何解决POJ3614问题,即在给定奶牛对阳光强度需求和不同防晒霜效果的情况下,最大化满足奶牛日光浴的数量。采用贪心策略,按奶牛的最小所需阳光强度递减排序,优先选择能覆盖更多奶牛的防晒霜。贪心策略的正确性通过分析论证,确保每个决策对后续奶牛的影响最小。
最低0.47元/天 解锁文章
527

被折叠的 条评论
为什么被折叠?



