![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心算法
文章平均质量分 61
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
Codeforces Round #767 (Div. 2) ABCD
日常卡C A - Download More RAM 题目大意 (换了个世界观)给定nnn个道具,体积为a[i]a[i]a[i],效果为b[i]b[i]b[i],当前容量为kkk。每次可以选择一个体积小于等于当前容量的物品,选择后容量扩大为k+b[i]k + b[i]k+b[i]。问容量最大可以扩大到多大。 思路 直接排序优先选择体积小&&效果大的物品,然后贪心选择直到无法再选为止。复杂度取决于排序O(nlogn)O(n \log n)O(nlogn)。 Accepted Code #.原创 2022-01-23 16:22:30 · 531 阅读 · 1 评论 -
Educational Codeforces Round 121 (Rated for Div. 2) ABCD
Educational Codeforces Round 121 (Rated for Div. 2) ABCD [A - Equidistant Letters][B - Minor Reduction][C - Monsters And Spells][D - Martial Arts Tournament]原创 2022-01-17 13:39:19 · 696 阅读 · 2 评论 -
2020 China Collegiate Programming Contest Qinhuangdao Site K.Kingdom‘s Power树上贪心
Problem Analysis 题目要求求除走遍所有叶子节点的最小步数。首先考虑树上贪心的做法。 对于同一根节点而言,我们优先走到达叶节点的最短的链,因为我们期望经过最长链的次数最小,也就是最后走最长链条。所以我们需要对访问顺序进行排序; 由于所有链条都是按照上述规则进行排序,因此对于某个点而言,在贪心取路径的过程中,对于到达的iii位置,仅会在i+1i+1i+1次访问时用到。因为后续的操作回溯到的点时距离根节点更近的父亲节点。 我们可以O(n)O(n)O(n)求出树上所有叶子节点最大深度,同时在求深原创 2021-11-25 22:30:37 · 410 阅读 · 0 评论 -
2020 China Collegiate Programming Contest - Mianyang Site D.Defuse the Bombs 二分答案
题目分析 题目大意:给定一个炸弹爆炸的时间序列,每次操作可以选择一个炸弹,使其爆炸时间延长1S1S1S,在完成该操作后,所有的炸弹的爆炸时间缩短1S1S1S。当某个炸弹的爆炸事件缩短至−1S-1S−1S时,该炸弹立即爆炸。 思路分析:考虑贪心操作。即每次都选取最小爆炸时间的炸弹,对其爆炸时间进行延长。可以发现对于每个操作次数numnumnum,对于初始爆炸时间序列a[i]a[i]a[i]统计负差值和。这个负差值和即为对于当前操作次数,如果保证所有炸弹不爆炸所需要的最小操作次数。那么根据这个思路,我们可以直接原创 2021-11-17 16:55:05 · 316 阅读 · 0 评论 -
2017-2018 Petrozavodsk Winter Training Camp, Saratov SU Contest C.Cover the Paths 贪心+DFS
Problem Analysis 题目大意: 给定一棵具有nnn节点按照1…n1 \dots n1…n进行编号的无向树。给定mmm条树上路径,要求求一个点集,能够让mmm条路径中每条路径上至少有一点能够出现在其中。要求最小化该点集。输出最小点集的大小以及点集包含的点。(不要求输出顺序,答案不唯一) 思路分析: 由于要求点集最小化,因此需要贪心的选取点加入点集。 首先考虑不得不加的点:当给定的路径只包含一个点的时候,该点必须出现在点集中,因为无论被多少条路径包含,它始终需要代表本身。对于非单点的路径,我们将所原创 2021-11-09 20:35:29 · 847 阅读 · 0 评论 -
[GYM101173K] CERC 16 K.Key Knocking 构造
题目大意:定义一个串的价值为相邻不同的个数+1+1+1,给定一个长度为3n3n3n的字符串,要求通过最多nnn次操作,使得串的价值至少为2n2n2n。操作反转两个相邻元素:将[x],[x+1][x],[x+1][x],[x+1]两个元素的值反转,0→1,1→00 \rightarrow 1,1 \rightarrow 00→1,1→0. 思路:每333个字符执行一次分割,只要能把每组分成222段而且和前面的不相连,最后段数一定不小于2n2n2n。因此首先判断前一个字符,然后根据前一个字符枚举当前333个字符原创 2021-10-26 23:53:13 · 143 阅读 · 0 评论 -
简单分解-最优分解贪心问题
简单分解-最优分解贪心问题 题目描述 现有一个数 nnn,需要把n分解成一个或多个两两互不相同的正整数(例如:999可以分解成2、3、42、3、42、3、4,也可以分解成4、54、54、5,但不能分解成1、2、3、31、2、3、31、2、3、3。当然也可以不分解,这样999能分解的结果中累乘的最大值是242424),并累乘,累乘结果最大值可能是多少。 输入描述: 多组输入,每组一个正整数$ n,(1≤n≤10^5)$ 输出描述: 输出一个整数,表示分解后累乘的最大值,结果对109+710^9+7109原创 2021-05-30 21:14:42 · 486 阅读 · 0 评论