随笔分类 -  贪心

摘要:题目link:https://www.acwing.com/problem/content/102/ 对于此题,因为每个数都比较的大,所以差分进行处理。 设原数组为 $a[i]$ ,差分后数组为 $d[i]$ $=$ $a[i]$ $-$ $a[i$ $-$ $1]$。 则容易得出原题转换为: 给定 阅读全文
posted @ 2021-01-18 22:17 louis_11 阅读(169) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10009 首先对于每一个鱼池,必须经过前面的鱼池才可以在当前鱼池钓鱼,因此可以先枚举终点,即最后在哪个鱼池结束钓鱼;然后再判断在当前鱼池钓几次鱼,选择最优的情况。$O(1e5$ $log$ $1e5)$ 详见代码。并不会很有逻辑性的证明。 阅读全文
posted @ 2020-10-31 22:28 louis_11 阅读(240) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10006 首先对于一个序列,从$a[1$ ~ $l]$都符合最佳序列,假设对于第$l$ $+$ $1$个数,它放到从$l$ $+$ $1$ ~ $r$的区间是一种最优的方法,并且它也可以放在从$1$ ~ $l$ $+$ $1$这里,那么根 阅读全文
posted @ 2020-10-29 19:42 louis_11 阅读(135) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10005 求最大值先乘小的,最小值先乘大的。可以用堆来维护。 因为正常来说,每个数都是能被乘到的,但是它还有一个加一,所以将越多个加一乘到最大的上面就是最大值,因此应该先乘最小的数,以此类推。 最小值同理。 1 #include <bit 阅读全文
posted @ 2020-10-28 06:58 louis_11 阅读(160) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10002 首先这道题不是用中心点 $+$ 半径作为一个区间的,可以发现如果那样算的话,圆与圆之间可能还会有一个缝隙,所以应该用勾股定理求出每一个圆所覆盖的区间,注意一下上下的距离够不够,然后就是区间覆盖问题,直接贪心即可。$O(n$2$) 阅读全文
posted @ 2020-10-25 16:35 louis_11 阅读(170) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10004 首先根据贪心,容易得出应该尽可能的不失去扣钱数多的游戏,因此先按照扣钱数进行排序。随后从后往前枚举时间,能完成就完成,因为有可能出现扣钱数多的游戏但时间宽裕、扣钱数相对少但时间紧的情况,因为答案要求最大,所以尽量每个游戏的时间都 阅读全文
posted @ 2020-10-25 15:28 louis_11 阅读(209) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10001 贪心即可,先按右端点进行排序,然后对于第$i$个要求,能往右种树就往右种。$O(n*h)$ 证明:对于第$i$棵树,如果种它是一种最优情况,那么如果不种$i$,种同样和$i$在$i$第一个出现的建议内$i$的右边没树的地方的树, 阅读全文
posted @ 2020-10-25 13:36 louis_11 阅读(143) 评论(0) 推荐(0)
摘要:题目link:https://loj.ac/problem/10000 贪心即可,将活动按右端点排序,排序后能选则选。$O(n)$ 证明:首先对于一个前面都为最优序列的前提下,如果对于一个活动$a$,使它发生是一种最优序列,然后再对于另一个活动$b$,它的结束时间比$a$早,并且开始时间也满足条件, 阅读全文
posted @ 2020-10-25 13:18 louis_11 阅读(160) 评论(0) 推荐(1)