
堆
Chester_King
虽千万人,吾往矣。
展开
-
【BZOJ】1150 [CTSC2007]数据备份Backup 堆+链表
题目传送门题目大意:对给出的距离差分后的n-1个权值中挑出k个不相邻的权值,求挑出的权值的和的最小值。(看懂题目还是挺重要的)没思路啊没思路,就算告诉我这是一道贪心题我也没思路啊,总不能是堆加链表的骚操作吧……(雾)对于差分后的n-1个权值,我们可以全都插到堆里。先贪心的挑出一个最小值a,假设这个最小值是答案的一部分,那么显然我们不能单独再取它左边的权值b或右边的权值c了。那么我们原创 2017-09-02 10:56:52 · 256 阅读 · 0 评论 -
【BZOJ】2006 [NOI2010]超级钢琴 ST表+堆+贪心
题目传送门这题好难啊……orz ZZK大佬,如果有一天我能和ZZK大佬一样强就好了……(不存在的!)这题题目大意就是给出一个n长度的序列,从中选出k个长度在[l,r]范围内的互不相同的子序列,求这些子序列的和的最大值。原来这题的模型叫超级钢琴啊,难道就是出自这题吗?一般求最大值之类的东西,我们会很容易想到线段树啦,分治啦,其实还有一种求静态区间最值的高级数据结构——ST表。先对原创 2017-08-29 21:33:42 · 306 阅读 · 0 评论 -
【BZOJ】4504 K个串 主席树+堆
题目传送门一个晚上就做了这么一道题……好颓啊……首先我们可以对于每个aia_i维护一个pre[ai]pre[a_i]表示在它之前与他最近的相同的数的位置。然后对于每个aia_i,在(pre[ai],i)(pre[a_i],i)这个范围内都加上aia_i,可以用主席树。题目要求kk个区间不相同,这就是“超级钢琴”的模型,套上超级钢琴的套路就行了。附上AC代码:#inclu原创 2018-01-16 21:21:22 · 273 阅读 · 0 评论