算法-贪心
All_fade_away
这个作者很懒,什么都没留下…
展开
-
CF626E. Simple Skewness
CF626E. Simple SkewnessSolution先排序。nnn为奇数时,枚举中位数,两边贪心地选择最大的数,显然平均数是凸函数,三分即可确定最值。当nnn为偶数时,必然选择最大值,然后转化为nnn为奇数的情况。PS:CF只有一个nnn是偶数的数据:21 2所以特判即可QvQ。Code#include <vector>#include <list>#include <map>#include <set>#includ原创 2020-09-17 14:43:44 · 215 阅读 · 0 评论 -
CF364B. Free Market
CF364B. Free MarketSolution显然最终能取到的物品必然是按cic_ici从小到大排序后的一段前缀。能取到的价值集合可由这段前缀做背包得到。每一轮取数的价值最多增加ddd。因此先对所有cic_ici做背包,从000开始每次贪心地选取距离不超过ddd的能被ccc表出的最大的价值,直到取到更大为止。Code#include <vector>#include <list>#include <map>#include <se原创 2020-09-09 16:03:54 · 420 阅读 · 0 评论 -
CF1178H Stock Exchange
CF1178H Stock Exchange题目描述简要题意:给定2n2n2n个一次函数y=aix+bi(a,b>0)y=a_ix+b_i(a,b>0)y=aix+bi(a,b>0),刚开始你有前nnn个函数各一个,在任意时刻ttt,xxx函数可以转换为yyy函数当且仅当axt+bx>=ayt+bya_xt+b_x>=a_yt+b_yaxt+bx>=...原创 2020-04-12 15:07:32 · 2667 阅读 · 0 评论 -
AGC026E - Synchronized Subsequence
AGC026E - Synchronized Subsequence题目描述Solution定义cnt[x][0],cnt[x][1]cnt[x][0],cnt[x][1]cnt[x][0],cnt[x][1]表示在前xxx个数中0的个数和1的个数分别是多少。然后把整个串sss划分为若干个子串,划分点在所有cnt[i][0]=cnt[i][1]cnt[i][0]=cnt[i][1]cnt[...原创 2019-12-07 13:02:35 · 270 阅读 · 0 评论 -
AGC023F - 01 on Tree
AGC023F - 01 on Tree题目描述Solution有一个奇妙的贪心思路。(奇妙的原因是我不会证)这一题的结点需要按拓扑序排序,并让逆序对个数最小。考虑在儿子向父亲合并的过程中统计答案,产生的逆序对个数就是cnt[father][1]∗cnt[son][0]cnt[father][1]*cnt[son][0]cnt[father][1]∗cnt[son][0],其中cnt[x...原创 2019-12-07 10:06:46 · 403 阅读 · 0 评论 -
AGC023D - Go Home
AGC023D - Go Home题目描述Solution我们首先把这些人分成在sss左边和在sss右边两类,考虑最左边的一群人AAA和最右边的一群人BBB,这两群人中必然有其中一群人是最后到家的。而是否最后到家取决于这两群人的人数(因为倘若只剩下两群人,一个要往左,一个要往右,必然会往人多的一个方向去)。设两群人的人数分别为a,ba,ba,b,且a<ba<ba<b。则...原创 2019-12-07 09:50:18 · 352 阅读 · 0 评论 -
BZOJ#3252. 攻略
BZOJ#3252. 攻略题目描述Solution有一个显然的 贪心,每次选取一个到根的点权和最大的点xxx,将答案加上xxx到根的路径的点权和,并将xxx到根的路径上的点的权值清零。可以使用DFS序+线段树维护。但完全没有这么麻烦。容易发现每一次选择的到根的链,从儿子跳到父亲的过程中,会从某一个时刻开始一直贡献为0,因为之前已经有一个链把上面的权值都清空了。如果我们丢弃掉上面一段权值...原创 2019-12-06 21:03:47 · 138 阅读 · 0 评论