贪心 系统复习和加深
作者:互联网
旧知复习
T178604 最大乘积
显然,不会拆1,而数字拆得越多肯定乘积更大,因为考虑任何一个数x,若a+b=x,则肯定有ab>x。
故从2开始往上拆(2 3 4 5...)但是最后可能剩下一些拆不出,则应该加1到最大的几个数上(和上面同理,加到一个数上面肯定不会这么优)做这种题可以先拆一些数找规律,然后举例子(手玩找性质)
T178609 最小数
考虑一个很显然的贪心结论:我们要让高位尽可能小。
那么有一个策略:从最高位开始,搜索如何删除可以让最高位最小且删除次数尽量少,然后再考虑次高位令其最小。
T178610 最大数
考虑排序,但是不是按照数的大小排序。
一种很妙的办法,对于相邻的两个数,比较谁在前面比较优秀。因为这两个相邻数的位置关系是不会影响其他数的位置关系的。比较也很简单,直接比较AB和BA谁更大即可。
T178607 最大乘积2
还是和上面那个题差不多,大的数肯定还是比两个较小数差,明显大于5的时候都有这个结论。
然而4却应该拆成两个2(题目要求)。
3不应该拆成1和2的乘积。
所以最后答案就只有3和2了。
考虑3多还是2多比较好,显然3多更好(随便举个栗子就知道)
于是一直拆3,直到小于5为止。
剩下的数是4就变成两个2,否则直接加进可重集即可。
T178612 线段覆盖
对右端点排序,然后直接扫描,如果能够加进去就直接加进去就可以了。
因为:右端点是单调不降的,这种情况下冲突线段优先选择右端点最左边的加入答案,可以保证后面可以加进去的线段最多。
是一个好题诶
T178614 纸牌游戏
两种状态依次枚举取最小的。
然后每次移动肯定一步到位。
考虑最左边的一定移向右边一定数量以满足条件(可以是移动负数),满足条件后右边一定不会移向它了,于是又只有移向更右边。这样就一定是最优策略。
T178617 最大子段和
DP裸题,但是可以用贪心来做。
因为要连续,所以选择的这一段的每一个位置的前缀和都应该大于(等于)0,否则这一段就可以不选答案更大。所以我们可以双指针维护,如果\(s_r<0(<=0)\),就把\(l\)移到\(r+1\),然后r继续走。这样可以保证一定能找到ans。
T178618 排座椅(maybe wrong)
直接排序就完了。
T178613 冲浪
去年的一个题,从最后一秒开始倒序考虑,每秒选择最快乐的。如果某一秒不能选了就退出。
T178619 珍珠项链
一个naive的想法,断成二倍链,直接从第一个位置开始作为起点往后面枚举。
但是某个位置不满足条件咋办?我们可以从最小表示法获得启发直接跳过已经枚举过的点,以新点作为起点。因为前面的点都不可能满足条件了。
过河问题
过河问题二
本题为付费内容。(雾)
国王游戏
我们要考虑相邻的两个人怎么排对总答案有什么贡献,即交不交换的贡献情况哪一种更优秀。然后通过某种假设得到相邻两个人的最优结论,也就是全局最优结论。
更多神题
标签:满足条件,排序,乘积,可以,最小,加深,考虑,贪心,复习 来源: https://www.cnblogs.com/lytql/p/15214957.html