
贪心
stargazer.
夜を穿つの
展开
-
【LOJ #3068】「2019 集训队互测 Day 1」学习轨迹(贪心)
传送门显然的一个想法是按照权值排序从前往后扫如果当前类型的根还没有被扫到的话就挂到根后面否则接到上一个已经计算过的权值后面扫到每个根的时候先把所有挂着的算了发现对于多个根我们可以合并扫之前的点的过程可以证明的是我们一定只合并一段前缀和后缀即扫的顺序是l...1...l...r...n...rl...1...l...r...n...rl...1...l...r...n...r这样的...原创 2020-04-16 17:17:09 · 798 阅读 · 0 评论 -
【Codeforces 639 E】Bear and Paradox(贪心)
传送门首先可以得知最优方案是按照pt\frac p ttp从大到小排序做证明可以考虑相邻两个的排列方法的贡献稍加推导得知于是排序后对于pt\frac p ttp相同的一块就有最大时间和最小时间然后考虑可以二分答案ccc按ppp从小到大扫一遍维护一下前面可能最大的分数即可#include<bits/stdc++.h>using namespace std;#defin...原创 2020-03-17 19:52:45 · 198 阅读 · 0 评论 -
【洛谷 P6142】 【USACO20FEB】 Delegation P(二分答案 / 贪心)
传送门和noip2018noip2018noip2018的那道有点像先二分答案反正是要最大化向上传的链从最小的开始枚举找第一个加起来≥k\geq k≥k的匹配还要考虑把不合法的往上传用setsetset做复杂度O(nlog2n)O(nlog^2n)O(nlog2n)本人的分类讨论稍微有些复杂#include<bits/stdc++.h>using namespace...原创 2020-03-11 18:37:53 · 421 阅读 · 0 评论 -
【LOJ #3158】「NOI2019」序列(模拟费用流 / 堆)
传送门考虑一个费用流做法S→ai(1,ai),ai→bi(1,0),bi→T(1,bi),ai→X(1,0),X→Y(k−l,0),Y→bi(1,0)S\rightarrow a_i(1,a_i),a_i\rightarrow b_i(1,0),b_i\rightarrow T(1,b_i),a_i\rightarrow X(1,0),X\rightarrow Y(k-l,0),Y\right...原创 2020-03-10 20:02:59 · 381 阅读 · 0 评论 -
【BZOJ #2034】 [2009国家集训队]最大收益(贪心 / 匈牙利算法)
传送门显然贪心把权值最大的先要了一定最优考虑把需要的时间离散化出来就相当于做一个最大匹配每个点连向的时间是一个区间如果有冲突把rrr更大拿去匹配显然更可行具体实现可以看代码#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb push_bac...原创 2020-02-13 22:45:52 · 264 阅读 · 0 评论 -
【LOJ#2324】【清华集训 2017】—小 Y 和二叉树(贪心)
传送门情况有点多…显然的贪心就是我们要让最小的一个叶子节点作为最左边的点然后考虑从这个点向上走对于2个儿子显然是把子树最小值小的那一个设成右儿子另一个当成父亲然后讨论的情况有点多…反正自己咕咕了具体选哪个根不重要#include<bits/stdc++.h>using namespace std;const int RLEN=1<<17|1;#de...原创 2019-04-05 20:13:54 · 204 阅读 · 0 评论 -
【洛谷P5290】【十二省联考2019】春节十二响(贪心+启发式合并)
传送门首先可以显然的发现段数一定是最长链的长度手玩一下样例似乎可以贪心,每次把最大的一个个丢?事实证明这是对的这样就有60pts60pts60pts了再把链写了就可以拿到75pts75pts75pts的好成绩考虑100分,如果合并2条子树的链由排序不等式可以证明第2边第iii大的数放一起是最有的那就可以利用优先队列启发式合并做看起来复杂度是O(nlog2n)O(nlog^2n)...原创 2019-04-09 16:51:46 · 287 阅读 · 0 评论 -
【BZOJ3790】—神奇项链(Manacher+贪心)
传送门先ManacherManacherManacher求出极大回文串考虑相当于就是有很多条线段,要选尽可能少的覆盖整个区间贪心即可#include<bits/stdc++.h>using namespace std;const int RLEN=1<<20|1;inline char gc(){ static char ibuf[RLEN],*ib,*o...原创 2019-07-14 22:03:57 · 246 阅读 · 0 评论