随笔分类 -  贪心

摘要:CF865D Buy Low Sell High Buy Low Sell High 题目 已知接下来N天的股票价格,每天你可以买进一股股票,卖出一股股票,或者什么也不做.N天之后你拥有的股票应为0,当然,希望这N天内能够赚足够多的钱. 分析 假如我们当前这个\(a_j\)作为某天卖出,那么一定是和 阅读全文
posted @ 2024-08-27 09:10 gan_coder 阅读(20) 评论(0) 推荐(0)
摘要:感觉一般可能要严谨证明的话还是有点麻烦,不如直接打表,或者先老实WA一发 来的快 一般题目会有选恰好k个/次这样的限制 大致就是通过二分斜率,然后通过dp,或者贪心计算出最大/最小值,然后通过判断这个最大/最小值对应的选的个数来调整 需要注意的是,我们计算的相当于是截距,还要+/-kl才是答案 例题 阅读全文
posted @ 2024-08-27 08:40 gan_coder 阅读(22) 评论(0) 推荐(0)
摘要:D - Summer Vacation 题意:有n个任务,每一天可以选择一个未完成的任务i来完成,并在ai天后获得bi的利益。问在m天内最多可以获得多少利益。 首先我们可以考虑假如i,j两个任务都在我们最后的答案里面,那么让a比较大的排在前面一定是更好的。所以我们先按照a降序排序。 然后用一个set 阅读全文
posted @ 2024-01-19 11:04 gan_coder 阅读(20) 评论(0) 推荐(0)
摘要:F - Integer Division 挺有意思的一道题, 贪心的做法就是排序之后,逐个加入,如果不能被之前的表示则加入 题解证明的话大概是这样 考虑第i个数选不选 首先加入前面选的数,如果能够表示当前的数,则必然不选 否则前面的数不能表示当前的数,假如我们不选\(p_i\) 假设最后得到一个合法 阅读全文
posted @ 2023-09-11 11:13 gan_coder 阅读(37) 评论(0) 推荐(0)
摘要:[[JSOI2007]建筑抢修](https://ac.nowcoder.com/acm/problem/20154) 跟经典题poj1456非常像。 首先如果两个都被选入那么截至时间T2小的放前面肯定更优,所以我们先按T2排序。然后逐个遍历建筑,建立一个维修时间为关键字的大根堆,如果前面花费的总时 阅读全文
posted @ 2023-05-24 18:25 gan_coder 阅读(47) 评论(0) 推荐(0)