其他分享
首页 > 其他分享> > 贪心题解

贪心题解

作者:互联网

8469特殊密码锁

如下分析:

  1. 对于一个密码锁,最多只会按下一次,因为按两次的结果和不按该位置的结果是一样的。

  2. 从左往右处理,如果前面0~i-1位置和目标相同,则考虑i位置:

  1. 对于第一把锁需要单独讨论,因为它没有前驱锁,所以第一把锁可以按下,也可以不按下(第一把的按下与不按下会触发不同的分支),比较这两种方法产生的结果,取最优解。

链接

2469电池寿命

考虑3个电池

只用考虑寿命最长的电池剩余电池总时间的比较:

  1. 若最长的电池比剩余电量之和要小,则最终用电时间等于总电量之和/2(所有的电量都会用完,具体分配情况是:由于a+b<c,则可以让a和b轮流消耗c直到c用完且a和b剩余电量相等,这样a和b剩下的也能够刚好用完)

  2. 若最长的电池比剩余电量之和要大,则最终用电时间等于剩余电池电量之和。(a+b<c,最优情况就是a+b)

若电池数>3则将最长那个电池提出来,剩下的分成任意两组(这两组可以看成两个电池),根据上述讨论,依然有:

1.若最长的>剩余之和,结果等于剩余之和 。

2.若最长的小于剩余之和,则剩余的可以把最长的消耗光,然后通过某种特殊的消耗组合,使得在剩下的里面依然有这种关系,最终可以消耗完,结果等于全体总和/2 .

若电池数==2,也有这种最长和剩余的关系。

链接

2704寻找平面上的极大点

直接用暴搜O(n^2)会超时,需要优化一些。首先按照x从小到大排序,对于相同的x,y按照从小到大排序。 然后在排好序的数组中从右往左遍历(这样保证了右边会有x大于该点),记录右边y的最大值,如果该点的y大于y的最大值,则该点就是极大点。

19装箱问题

6*6的箱子放入边长为1,2,3,4,5,6的正方形。思路当然是优先处理放入大的箱子,具体处理过程如下。

对于边长为4,5,6的,一个箱子只能放一个正方形,然后尽量将小的正方形(如果这时还有小的正方形)放进去。

对于边长为3的,要分别考虑4种情况:一个箱子里有1,2,3,4个3 * 3的正方形,再讨论放入对应能容纳的更小的正方形(优先放2 * 2,再放1 * 1)

如果这之后还有22和11,就先全部放入2 * 2,剩下的再放1 * 1.

链接

标签:剩余,题解,电池,正方形,电量,该点,最长,贪心
来源: https://blog.csdn.net/touristourist/article/details/94211822