
贪心
_rhinoceros_
非淡泊无以明志,非宁静无以致远。
展开
-
(贪心)洛谷P2887 [USACO07NOV]防晒霜Sunscreen
一、算法分析贪心策略是将牛按照minspf的降序排,然后在尽可能满足当前牛的情况下,优先取spf值大的防晒霜。这样选择的原因是本题的特点(也是一些其它贪心类问题的特点),即如果我放弃了当前的牛,后面的情况也只能一样或更差。题目要求找出可满足的最多牛,如果我们放弃了当前牛,可能导致后面有一个牛用了本来打算给当前牛的防晒霜,也可能没有,但是无论如何,答案不会因为我们的刻意放弃而增加。所以基本的贪心...原创 2020-01-26 11:03:15 · 366 阅读 · 0 评论 -
(区间相关问题)[USACO]修理牛棚 Barn Repair
一、算法分析首先选择一个恰覆盖第一头牛到最后一头牛的木板(此时要排序,因为题给的数据不一定是有序的)。然后考虑截取区间的问题,题目要求木板最大数目为s,换言之,就是要截s-1次。(注意这里截一次等于两刀,具体看图)由贪心原则,算法还是很直观的,显然,在规定木板个数的基础上,我们一定会优先截掉比较大的“连续空位”,比如第一次和第二次的,而对于第三头和第四头之间的那个空位,由于我们的截取次数不够...原创 2020-01-15 09:42:04 · 246 阅读 · 0 评论 -
(贪心)(线段树) 洛谷P3078 [USACO13MAR]扑克牌型Poker Hands
一、算法分析本人做这道题的时候,一开始以为是个区间修改的问题,然后就套上之前写的线段树模板,再加一波递归,结果只拿到了90,最后一个点还是超时了。所以后来仔细想了一下,还是要进行高效算法设计。个人的思路是对于序列依次考察,从前往后推。比如序列24123,先看2,如果只有一个2,那么结果是显然的,打两次牌即可,所以这个情况下答案是2 。然后再看24,那么打两次之后,2打完了还有4,于是就要打4次。...原创 2019-12-29 01:13:36 · 325 阅读 · 0 评论 -
洛谷P2902 [USACO08MAR]珍珠配对Pearl Pairing
一、算法分析这道题要注意学会进行深入分析,在进行分析之前首先一定要搞清楚题目到底是要我们算什么。题目显然是希望我们输出配对方案,合法的配对方案是只要两个珍珠颜色不相同就行,也就是说,只要同一行的两个数字不相同就行,此外还需要刚好用掉所有的珍珠。这时就需要我们进行深入的思考了。首先要想让珍珠不重色,我们就要考虑,什么情况下珍珠会重色。显然,当某一种颜色的珍珠数量超过了所有珍珠数量的一半时,就永远无...原创 2019-12-28 19:01:35 · 211 阅读 · 0 评论 -
(区间相关问题)洛谷P1803凌乱的yyy / 线段覆盖
一、算法分析可以联系紫书上的,选择不相交的区间那一节。本题算法很直观,从贪心思想来说,我们希望选的线段尽量靠前而给后面的线段腾出空间,所以就要对线段的右边界排序。然后尽量往左挤。二、代码如下#include<iostream>#include<cstdio>#include<cstring>#include<vector>#includ...原创 2019-12-20 00:43:26 · 206 阅读 · 0 评论 -
贪心-CF545D Queue 题解
算法分析本题是一道比较简单的贪心题,本着多练练STL的原则,本文题解用优先队列进行实现。本题值得注意的是,经过分析,我们只需要让不满意的人数尽量少即可,题目要求中,并不关心每一个顾客的不满意程度,所以我们可以“牺牲”一些顾客,来使得尽可能多的顾客满意。代码及题解#include<iostream>#include<cstring>#include<cstdi...原创 2019-11-28 03:47:15 · 295 阅读 · 1 评论