
贪婪算法
部分贪心算法(贪婪算法)
SoKeeGumpCN
瞎混
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU1789 Doing Homework again(贪婪)
Problem这个题稍微有点难想,按照贪心的策略,首先做掉扣分量最大的作业肯定是没有问题的,但是中间可能会夹杂日期相反多扣分的问题,借助到其他人的博客,这里按照扣分大小排好序后,再次遍历每个日期之前的日期,如果发现哪一天是空的,就用那天去做当天的内容,当天的时间便可以空出来做后面的作业,如果遍历到第一天依然没有空余的时间,那这个作业恐怕就真的要扣分了。import java.io.Buffer...原创 2020-04-04 14:28:52 · 147 阅读 · 0 评论 -
HDU2037 今年暑假不AC(贪婪)
Problem这个确实是经典的区间判断法,判断区间重合,覆盖次数一系列的问题,方法都是按照区间的左/右端点排序,然后依次判断即可。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;class Main { st...原创 2020-04-04 14:24:36 · 177 阅读 · 0 评论 -
HDU1050 Moving Tables(贪婪)
Problem第一眼看以为是贪心中经典的区间判断问题,但是怎么写怎么不过,不知道问题出在哪里,后面看到了网上一个老哥想,遍历经过最多房间的次数就是答案,要简单许多。区间判断法,没能AC:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java...原创 2020-04-04 14:23:05 · 123 阅读 · 0 评论 -
HDU1009 FatMouse' Trade(贪婪)
Problem经典贪心问题,算账问题,怎么买东西最合算。按照购买率排序即可。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;class Main { static BufferedReader b...原创 2020-04-04 14:17:52 · 111 阅读 · 0 评论 -
AcWing 1248. 灵能传输(前缀和 + 贪心)
去年蓝桥杯省赛的压轴题,难度真是…和前面的题目没法比了,这个题目考试的时候基本没看,现在看来挺可惜的,不过估计做了也拿不了多少分。。Problem这个题的难点在于想法, 能够把前缀和的思路用上,发现经过题目描述的变换后,如果转换成前缀和,比如三个人前中后做公式,只需要交换S[l] 和 S[mid],但是S[0] 和 S[n]不可以动通过上述分析可以明确想要求得本题的最优解应使得所求序列尽量保...原创 2020-03-15 17:20:28 · 340 阅读 · 0 评论 -
AcWing 1247. 后缀表达式(贪婪)
Problem这个题由于可以自由的加括号,那么负数也可以变成加,想加就加想减就减1.特殊情况:m=0,直接输出和2.一般情况:把所有数排个序,最大的拿出来,放首项,把最小的数拿出来,给他一个减号,再套一个括号import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;...原创 2020-03-11 14:25:36 · 163 阅读 · 0 评论 -
AcWing 1239. 乘积最大(贪婪)
Problem第九届蓝桥B组省赛最后一题这个题问的是给一群数,问选k个相乘得到最大值,很明显是个贪心问题,但是可能没想到是用分类讨论能AC的题目,去年好像对这个题没有什么想法。1.k 如果是偶数的话,选出来的结果一定是非负数 , 原因如下:(1) # 负数的个数是偶数个的话,负负得正,那么一定是非负数(2) # 负数的个数如果是奇数个的话,那么我们就只选偶数个绝对值最大的负数2.k 如...原创 2020-03-08 22:48:25 · 237 阅读 · 0 评论 -
AcWing 1235. 付账问题(贪婪)
Problem这个题就是一群人吃饭,AA制某些人钱不够,如何付钱使得标准差最小?贪心问题,不够的全拿,然后依次计算平均值。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.uti...原创 2020-03-08 15:04:36 · 151 阅读 · 0 评论 -
AcWing 112. 雷达设备(贪婪)
Problem贪心问题,转化一下就变成了区间选点问题把每个岛屿在x轴的辐射区间映射上去,然后变成区间选点import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Arrays;...原创 2020-03-07 11:54:55 · 309 阅读 · 0 评论 -
AcWing 122. 糖果传递(数学分析+贪心)
Problem这题还真是个不折不扣的数学化简问题。。假设每个小孩子给右边的孩子xi个糖果(负数就是反过来给)在第一个人中,一定会向第二个人拿糖果或者向第二个人给糖果,其数量为|A[1] - avg|,更新A[2]在第二个人中,一定会向第三个人拿糖果或者向第三个人给糖果,其数量为|A[2] - avg|,更新A[3]…在第(n - 1)个人中,一定会向第n个人拿糖果或者向第n个人给糖果,...原创 2020-03-06 15:30:35 · 262 阅读 · 0 评论 -
AcWing 1055. 股票买卖 II(贪婪)
Problem一个序列,可以随时抛,买股票,怎么说呢。就是一个类似逆序对,累计差值的双指针。打个比方1, 2, 3, 4, 6, 7, 8, 9,两个算法1. 2 - 1 + 3 - 2 + 4 - 3 + …2. 9 - 1其实答案是一样的,所以只需要双指针,后面的指针找到最后一个大于后一项的数,累加就可以了。import java.io.BufferedReader;im...原创 2020-03-04 14:19:33 · 208 阅读 · 1 评论 -
AcWing 1208. 翻硬币 (贪心)
这个题初看就是类似灯开关的题目,牵一发动全身,只是这个代价比较小,仅仅相邻的两个按钮会联动,从头开始遍历,遇到不同的就改,不关心后面的情况。Problemimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;...原创 2020-01-31 09:42:43 · 229 阅读 · 0 评论 -
AcWing 125. 耍杂技的牛(贪心)
贪心部分的最后一题(推公式)题目来自AcWing 洛希krist 同学的整理:思路: 与国王游戏的贪心策略相似, 我们先分析每头牛的危险值 = 他前面牛的w(重量值)和 - 自身的s(强壮值),要使每头牛的危险值最小,这显然是与w 和 s同时相关,所以先 yy 出一种做法按 每头牛的w + s进行升序排序import java.io.BufferedReader;import jav...原创 2020-01-15 02:00:10 · 258 阅读 · 0 评论 -
AcWing 104. 货仓选址 (贪心)
这是利用数学角度解决的贪心问题,数学好的师傅们可以想一想。题目中位数的性质。res = |x - x1| + |x - x2| + … + |x - xn|不妨取头和尾为称为一组,即|x - x1| + |x - xn|为一组…x到x1和xn距离之和最小值取在x1到xn之间任意一点。import java.io.BufferedReader;import java.io.InputS...原创 2020-01-07 23:32:44 · 296 阅读 · 0 评论 -
AcWing 913. 排队打水 (贪心)
题目非常经典的贪心问题,排队打水,方法是最快的人先打水,最墨迹的最后打。加入等待序列是 5 1 2 6 7 4 8, 那么总需要的时间就是5 * 6 + 1 * 5 + 2 * 4 + …第一个人打的5分钟需要六个人等第二个人打的1分钟需要五个人等第三个人打的2分钟需要四个人等…import java.io.BufferedReader;import java.io.InputS...原创 2020-01-07 19:10:21 · 234 阅读 · 0 评论 -
AcWing 148. 合并果子(贪心)
Huffman树的模板问题题目哈夫曼树+优先队列这道题目是哈夫曼树的典型模板,也就是每次选择最小的两个果堆,然后将他们合并起来,再次压入堆中.import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.PriorityQueue;...原创 2020-01-07 18:22:06 · 221 阅读 · 0 评论 -
AcWing 907. 区间覆盖 (贪心)
贪心的区间问题的最后一题,大概看得出贪心的区间问题一般都需要排序,然后按照这个排序解决问题。题目这个题依旧按照左端点排序,然后依次看是否满足条件,需要注意的是循环结束后也就是列表的元素全部试过以后发现还是没解决,那就是无解,需要特别处理。import java.io.BufferedReader;import java.io.InputStreamReader;import java.i...原创 2020-01-07 03:55:49 · 175 阅读 · 0 评论 -
AcWing 906. 区间分组 (贪心)
这两天累死了,准备结课的各种考试和项目。题目这道贪心的题目,是这么个意思所以答案是三,就是同一个区间不能有重复的元素,包括端点。考虑排序左端点后用优先队列表示每个区间,最后输出优先队列大小即可。另外我要再看一下排序器的用法, 时间长了不用又要忘了。这里给出AcWing一位同学的题解,表达能力比我好很多:算法分析1、将所有区间按左端点从小到大排序2、从前往后枚举每个区间,判断能否...原创 2020-01-06 18:52:01 · 343 阅读 · 0 评论 -
AcWing 908. 最大不相交区间数量(贪心)
这个题的思路和上一题的思路一样,就是包括不同的区间。题目代码一样能过。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Comparator;import java....原创 2019-12-29 20:41:46 · 292 阅读 · 0 评论 -
AcWing 905. 区间选点(贪心)
贪心部分的第一题,贪心的思路不固定,代码没有模板。题目这个题我总把区间端点排序,总是选择后端点,判断能容进几个区间。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.C...原创 2019-12-29 20:14:19 · 258 阅读 · 0 评论