
贪心
FrostMonarch
这个作者很懒,什么都没留下…
展开
-
5195. 最长快乐字符串 (贪心)
题目大意:现在我们有a个'a', b个'b' , c个'c'. 问我们怎么组合这些字符使得这个字符串尽可能长,而且不存在连续3个相同的字符。找出这个字符串。a,b,c<=100解题思路:因为a,b,c<= 100 其实是可以用dp来做的。不过需要用dp来打印路径。先讲一下dp怎么做吧。其实就是无脑5维dp即可。dp[a][b][c][d][e]. 表示 当前我们还有...原创 2020-04-05 14:57:44 · 307 阅读 · 0 评论 -
洛谷 p3078 (差分,贪心)
题目大意:每次可以对区间[l,r]减1,问我们最少经过多少次操作可以把数列an全变为0.解题思路:一开始想用二分加线段树,发现线段树不会写。丢人其实我们只用考虑相邻元素之间的差就可以了,因为假如本个元素比上一个小,那么其实这个元素要减的话,上一个元素已经帮你减掉了。假如本个元素比较大,对答案的贡献就是a[i]-a[i-1]#include <bits/stdc++....原创 2019-12-24 19:59:41 · 760 阅读 · 0 评论 -
codeforces 608 div2 portals(带反悔的贪心)
题目大意:我们要攻略n个城堡,每个城堡有ai,bi,ci三个参数,我们到达城堡i时必须至少有ai个人才能攻略,不能攻略输出-1到达一个城堡后能够加bi个人。同时我们允许放1个人在城堡i防守,这样我们能得到ci的分数。注意过了这个城堡就不能再选择之前的城堡进行防守。但是,这里有一些道路允许我们在城堡b到城堡a,其中b大于a。解题思路:很自然地,我们每次到达一个城堡都尽可能进行defend...原创 2019-12-18 22:15:11 · 249 阅读 · 0 评论 -
codeforces 598 div3 Minimize the Permutation(贪心找规律)
题目大意:有n个排列数。现在定义操作:交换第i和i+1个元素。我们对每个i位置只能操作一次。问经过这种操作后,我们最少能够得到的字典序序列是多少。解题思路:我们贪心从小到大选择数往前挪,我们需要维护一个位置,这个位置是指我们从右到左最多只能移动到这个位置。有没有可能我们想把数字从左运动右呢?这里我们因为是字典序,每次只关心我们的目标数能不能放在前面,所以我们不关心能不能向右挪。另外...原创 2019-11-05 12:37:57 · 168 阅读 · 0 评论 -
洛谷 P2577 午餐(贪心排序,DP)
题目大意:已知一群学生分别有独立的排队打饭时间,以及吃饭时间。已知有两个窗口,学生可以在这两个窗口之中的一个排队,学生一旦打完饭就开始吃饭,问怎么安排学生在两个窗口之间排队可以让最后一个吃完饭的学生的时间尽可能的早。解题思路:首先,我们假设只有一个窗口的时候怎么排序是最优的,这里有一个重要的发现就是:当把学生的吃饭时间从大到小排序后再安排学生以这个顺序打饭是最优的。有了这一个重要的发现...原创 2019-10-16 20:27:40 · 234 阅读 · 0 评论 -
洛谷 P2279 消防局的设立(贪心)
题目大意:已知有一棵树,我们对它进行一个着色操作,每对其中一个节点着色时候,相邻的距离为2的节点也会同时着色,问我们最少需要的着色次数是多少。解题思路:使用贪心,我们从树的深度从深到浅遍历节点。节点若还未染色,我们则对它的爷爷进行染色。为什么这样染色是可行的呢?因为这样染色我们可以把它,它的兄弟,它的父亲全部进行着色而且还能向外拓展。问题是:怎么知道这个节点染了色没有,我们假若对...原创 2019-09-22 18:45:09 · 156 阅读 · 0 评论 -
洛谷 P1233 木棍加工(贪心,递增子串DP)
题目大意:有矩形A1,A2... ... An. 每个矩形有长宽w,h。现在已知cost:(1)若矩形a的w,h小于矩形b的w,h,那么没有cost(2)其它情况cost+1.现在已知矩形A1,A2... ,问怎么得到最少cost.解题思路:首先,我们要用贪心。这里有一个最优边界,若矩形a1,a2,a3互不包含(即cost肯定有3,之间长宽没有包含关系).所以,最优边界...原创 2019-08-27 17:16:01 · 232 阅读 · 0 评论 -
洛谷 P1080 国王游戏(贪心)
题目大意:有一串数字对{ (a1,b1),(a2,b2) } An现在有一个计算分数的算法:第i个人的分数:score[i]=king*An[0][0]*An[1][0]*..A[i-1][0]/A[i][1]。其中,king表示一个初始值,题目给定的。问:我们对An的数对任意排列,怎么得到每次排列中score最大的那个 最小。并输出最优的score解题思路:假设我们只...原创 2019-08-22 12:50:24 · 183 阅读 · 0 评论 -
洛谷P1803 线段覆盖(贪心)
题目大意:有n个线段,问最多能放多少个不重叠的线段。解题思路:右端点从小到大排序,我们每次尽可能地放右端点小的线段,能放就放(即不重叠)就可以了,为什么这样可行呢?因为右端点比较小更可能留有位置放其它区间。废话:好久没做贪心题了,这种区间题应该能反应过来需要考虑左,右或者区间长度这三个信息,然后再构建算法。另外,所谓贪心,每一步所做的都可以理解为 为最后的全局最优做准备(QAQ...原创 2019-07-28 20:26:57 · 400 阅读 · 0 评论 -
codeforces 576 div2 mp3(贪心,构造性算法)
题目大意:已知数列an,同时我们需要满足约束 其中n为数列长度,k为an中不同类型的数字的数目,I为题目给定的输入常数,我们可以对数列设定一个区间[l,r],an中小于l的数字变为l,大于r的数字变为r,问:区间怎么设置,我们可以满足约束同时 改变尽可能少的数列元素。解题思路:首先呢,我们对an排个序,统计相同元素的个数,得到an有多少个不同的数,例如[5,5,3,3,7],只有三种不...原创 2019-07-31 08:47:31 · 334 阅读 · 2 评论 -
codeforces 562 div2 Increasing by Modulo(贪心,二分)
题目大意:有一串数字An,这些数字的范围是0-m-1,然后我们有一种操作:每次可以选择任意个数字,每个数字Aith可以Aith=(Aith+1)%m问我们最少对每个数字 进行多少次的操作,可以使得这些数字单调不减。每个数字的操作次数相同。解题思路:这种贪心题一般都有个特点,就是往往有一个最优的边界,然后我们证明可以达到这个最优边界。在这里我们得出最多m-1次操作可以使得这些数字单调...原创 2019-07-07 13:01:36 · 177 阅读 · 0 评论