![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
贪心
文章平均质量分 53
人类本质
wind__whisper
qwq
展开
-
AT2293 [AGC009D] Uninity(贪心、状压)
贪心原创 2022-04-20 21:16:32 · 189 阅读 · 0 评论 -
CF1534F:Falling Sand(tarjan、贪心、dp)
解析本题做的过程大概是:到了正解门口决定回头,绕了地球一圈最后从另一边走到正解了…首先 easy version 很简单,如果从一列最大值可以走到另一列最大值,那么后者就没用了。缩完点所有的零度点就是答案。hard version 的问题就是选的点是最大值,但要求走到的点不一定是最大值。要求走到的点如果互相可达,那么可以被到达的也没用了,所以有用的点满足互不可达。那么如果到一个点够不到要求高度了,后面必然更达不到,所以选择每一列后可以满足的点必然是连续的区间。而且不难发现我选的列右移的时候,其满原创 2022-04-06 10:47:52 · 192 阅读 · 0 评论 -
P4364 [九省联考 2018] IIIDX(线段树、贪心)
很妙的贪心原创 2022-03-18 15:07:51 · 182 阅读 · 0 评论 -
洛谷P1484:种树(反悔贪心)
反悔贪心好题原创 2022-01-24 17:26:59 · 486 阅读 · 0 评论 -
洛谷P1650:田忌赛马(贪心)
经典贪心的策略与证明原创 2022-01-23 12:21:08 · 691 阅读 · 0 评论 -
CF1100F Ivan and Burgers(线性基)
线性基与贪心的结合原创 2021-12-04 14:38:11 · 231 阅读 · 1 评论 -
P3545HUR-Warehouse Store&P4053建筑抢修(反悔贪心、堆)
解析两道很像的题不能说相似,只能说是一模一样感觉有火车载客的影子想到开个堆来维护在供不应求时弹出要求最高的即可T1还得输出方案针麻烦代码#include<bits/stdc++.h>const int N=3e5+100;const int M=2e3+100;const int mod=1e9+7;#define ll long long#define ull unsigned long long#define debug(...) fprintf(stderr,原创 2021-11-18 21:07:43 · 346 阅读 · 0 评论 -
P3243 [HNOI2015]菜肴制作(拓扑排序、贪心)
解析很好的题也就是我没做出来的意思反向思维似乎是我欠缺的这道题也是也许做题时应该多特意往这边想想当正向看并没有太好的性质时,也许反过来能使题目豁然开朗容易想到暴力n方如何做(以下均指反图)找到1所在的点,染色找到其导出的子图,在其中再找到最小的点,再求导出图…直到子图大小为1时,把结点放到当前答案序列的开头那么不难发现,每个点导出的子图都是占据答案序列上连续的一段,同时最小的结点会在这一段的最后然后…我就发现不出来了…考虑反过来想答案序列最后一个点,必然是入度为0的编号最大的点因原创 2021-11-18 20:56:39 · 385 阅读 · 0 评论 -
CF1415E New Game Plus(贪心)
解析把题目标签写在数据范围上的一道题由于k过大,显然无法dp那就只能贪了一开始被完全带跑偏了…想的是把序列降序排列然后从后往前划分…这个思路能很简单的写出nkdp然后就卡住了…算看了一半题解吧看到第一段“考虑分成k组”后退出来了有了这个线头后面就非常顺以后还是要努力培养在推不出好的性质时打破第一印象的能力考虑正解清零k次等价于把boss分成不多于k组每次把新元素加入的同时获得原来集合内元素和的代价所以只需要维护集合的元素和即可考虑把所有集合放入大根堆降序加入元素显然正的元原创 2021-11-14 23:26:18 · 102 阅读 · 0 评论 -
CF1406D:Three Sequences(贪心、构造)
解析本题说明了样例的重要性完全可以通过仔细观察样例得出一些结论首先最大值显然就是max(b1,cn)\max(b_1,c_n)max(b1,cn)考虑最优策略如果a上升了,就让b上升因为假设前面都拼的严丝合缝了,让c上升前面全得上升,肯定会对答案有影响,而修改b则不一定如果a下降了,就让c下降类似的原因,如果让b下降,就会影响到b1,那么b1小了,c1就会大,对答案产生影响想到这些,后面维护差分就较为简单了代码#include<bits/stdc++.h>using原创 2021-11-11 22:38:13 · 101 阅读 · 1 评论 -
NOIP2012:疫情控制(二分、贪心、树上倍增)
解析二分的单调性较为明显,一路推导下去的性质都不算太难想,正解的思路还是不难想到的但从头到尾都实现很考验思维的严密性和代码能力然后我就双重被考验挂了qwq第一交的时候一个地方把倍增的dis数组写成pl,判断封口也有问题…但竟然有70真实考试的时候绝对不能出打错数组这种错!提交前还是要谨慎一些!另外那个判封口…只能说路漫漫其修远兮了…我对于最后根下方儿子(暂且叫它次根好了)与军队贪心匹配的地方写的和题解不太一样题解的实现是:爬到根下方的军队不考虑,然后把所有军队提出来一起贪心我的做法是先给原创 2021-11-07 02:35:57 · 183 阅读 · 0 评论 -
NOIP2018&洛谷P5021:修建赛道
没有证明的贪心就是乱搞解析把标签写在题面上的一道题…显然要二分答案然后看能不能分出来m个关键策略是每个结点内部尽可能的多匹配的前提下,给父亲传一个最大的这不纪念品分组?然后我就无脑的敲了个双指针的贪心上去然后就WA掉了qwq(由于带限制的点太多这竟然还有80)纪念品分组的贪心只保证了尽可能多匹配却不能保证剩下一个最大的一个简单的例子是较小值和次大值匹配,把最大值传上去然而如果按照从小往大扫,每一个贪心的想与尽可能小的匹配,这样就能保证贪心的正确性了代码#include<.原创 2021-10-19 21:33:24 · 103 阅读 · 0 评论 -
CSP2019&洛谷P5665:划分(单调队列,高精度)
解析自己写的时候写了二维单调队列优化的64分一次过还是可以满意了啦正解的关键结论是最优的方案的最后一段一定尽可能的短原因嘛…显然 贪心的想,再最后一段的段首可以往前放的情况下肯定是要往前放的,这样代价更小,同时对后面的选取也更加有利这个性质是可以递归的考虑如何求以i结尾的最后一段的最短长度设以iii为末端的最短段的上一段的段尾在posipos_iposi设sis_isi是[1,i][1,i][1,i]的前缀和那么posipos_iposi就是满足:si−sj>=sj−spos原创 2021-10-16 23:55:47 · 171 阅读 · 0 评论 -
CSP2020&洛谷P7076:动物园(位运算)
你知道它很水,但你就是切不掉它解析一直卡85!!原因:最后判断的循环应该从0到k-1而不是从1到k!啊啊啊一定要小心啊qwq说实话这个分都算是好的,这种bug爆大分一点招没有还有一个问题是对于ans=64爆unsigned ll 的特判,需要注意(而且由于没看着限制互不相同的条件,还开了个map慢的像屎一样qwq)睁大眼睛,注意细节!!!代码#include<bits/stdc++.h>using namespace std;#define ll unsigned l.原创 2021-10-14 22:50:51 · 156 阅读 · 0 评论 -
LOJ&洛谷P1248加工生产调度(贪心、Johnson 法则)
解析和国王游戏一样的做法容易写出cmp函数的依据:min(u.a,v.b)<min(u.b,v.a)但是这个题的比较函数有一个取min的操作这个东西会有一个问题:不满足不可比性的传递性通俗的说,x=y,y=z,但是x不一定=z比如说如果y的a和b都很小,就会出现这个无论a和c之间关系如何,等式总是成立的尴尬情况为了避免这个东西,引入了Johnson 法则设置dd=1(a>b)d=0(a=b)d=-1(a<b)在d不同时,优先按照d排序(显然d不同时是正确的)原创 2021-10-08 22:48:30 · 587 阅读 · 0 评论 -
YBTOJ:灯光控制(贪心)(公倍数)(暴力枚举)
文章目录题目描述解析代码题目描述解析没有想出来首先可以确定开关要么开一次,要么不动,其他都和这俩是等价的一开始最先想到的就是贪心的方法,每个开关遍历,如果按下会使答案变好就按下。但是显然当前的开闭对后面是有后效性的,很容易就hack掉了于是,我的思维就去了其他的天涯海角…在正解的门前回了头qwq因为都是质数,所以假设两个开关x和y,它们一定互质那么它们会互相影响的(也就是公倍数),一定是X*Y的整数倍(讽刺的是这个我也发现了,就差拼在一起)那么我们就可以发现:对于所以大于根号n原创 2021-07-23 00:56:54 · 92 阅读 · 0 评论 -
P2048 [NOI2010] 超级钢琴(RMQ 贪心)
文章目录题目描述解析代码传送门题目描述解析首先,如果只有一个和弦,那么问题显然简单了用前缀和结合ST表随便做做即可然而这次要求前k大的怎么办呢?参照之前有一道序列合并的做法我们想到,可以先建一个优先队列,把以每个元素为开头的最大和弦求出来然后每次弹出队首,再用队首的开头把加进来一些新的问题是,我受那道题影响,觉得一定要加进来次大的次大弹出就加第三大的,子子孙孙无穷匮也…于是我就卡到这里了----------我的思路和题解的分割线-------------但是不必拘泥与原来的原创 2021-07-17 20:51:08 · 182 阅读 · 0 评论 -
火车载客(ybtoj-二叉堆)
文章目录题目描述解析我的思路代码题解思路题目描述解析我的思路其实就是线段覆盖的一个变体贪心的想:把游客按右端点升序排序后面的证明就和线段覆盖一样了如果有两个游客冲突我们应该选右端点靠右的因为这样对以后继续在右边出现的游客来说肯定不会更差然后就是对于能否上车的判断其实就是一个对区间的修改与最大值查询就非常自然的想到了线段树时间复杂度:nlogn代码#include<bits/stdc++.h>using namespace std;#define ll lon原创 2021-05-29 00:34:54 · 149 阅读 · 4 评论 -
选数游戏(ybtoj-二叉堆)
文章目录题目描述解析题目描述解析一道很考验代码能力与思维的题(我不是在为自己的菜找理由)首先由于可以每一列都有类似于环的性质所以我们可以忽略点的纵坐标从前往后枚举选点结束的位置首先每个列都得...原创 2021-05-28 16:14:13 · 334 阅读 · 2 评论 -
贪心: Array Splitting(数列分段)(洛谷CF1175D)
解析这题可以转化一下:(《神笔马良》。。。。)计算这些长方形对应下标的总加和我们可以一层一层往上垒,假设第i层起始点为xi,总和为sumi,再设从1到i的前缀和为si显然第一层x1=1,sum1=sn对于第二层x2,sum2=tot[x2,n]=sn-s[x2-1]对于第三层x3,sum3=sn-s[x3-1]。。。对于第k层xk,sumk=sn-s[xk-1]最后累加sum即答案显然答案整理一下应为k*sn-(s[x2-1]+s[x3-1]+…+s[xk-1])要使ans最大,.原创 2021-01-25 21:44:51 · 149 阅读 · 1 评论 -
日志:贪心
排队接水时间限制: 1 Sec 内存限制: 128 MB题目描述有n 个人在一个水龙头前排队接水,假如每个人接水的时间为ti ,请编程找出这n 个人排队的一种顺序,使得n 个人的平均等待时间最小。输入第一行为n(1<=n<=5000)。第二行分别表示第1 个人到第n 个人每人的接水时间t1,t2…,tn,每个数据之间有一个空格。(0<=ti<=10000)输出共两行,第一行为一种排队顺序,即1 到n 的一种排列,且保证小序号靠前(如:“2 3”与“3 2”,在平均原创 2021-01-19 23:51:53 · 147 阅读 · 0 评论 -
priority_queue+贪心:运输(题解)
解析不难发现每次都应合并最大的一对,从而使局部最优带动整体最优sort就会很自然的想到但是问题是合并完之后的新值可能已经不是当前最大了(WA。。qwq)于是想到每次循环sort一遍,结果n^2logn又超时了。。。在一位高人的指引下,我学废了赖皮的priority queue(具体见代码)代码#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#inclu.原创 2021-01-19 22:57:46 · 197 阅读 · 0 评论