
单调队列
文章平均质量分 66
空灰冰魂
=NULL
展开
-
【BZOJ3831】【POI2014】Little Bird 单调队列,''再不刷它就土了''系列。
题意:我直接粘bzoj的黑版翻译吧~有一排n棵树,第i棵树的高度是Di。MHY要从第一棵树到第n棵树去找他的妹子玩。如果MHY在第i棵树,那么他可以跳到第i+1,i+2,...,i+k棵树。如果MHY跳到一棵不矮于当前树的树,那么他的劳累值会+1,否则不会。为了有体力和妹子玩,MHY要最小化劳累值。题解:单调队列破题水,没了。话说BZOJ的POI一向土豪原创 2015-01-08 08:56:15 · 2129 阅读 · 0 评论 -
【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动规
题意:给出若干棵树的高度,你可以进行一种操作:把某棵树增高h,花费为h*h。操作完成后连线,两棵树间花费为高度差*定值c。求两种花费加和最小值。题解:跟NOIP2014 D1T3很像。暴力动规是O(1*10^9)会T所以单调队列一下,每颗树扫两遍结束。完事,看水代码吧。#include #include #include #include原创 2014-12-22 09:01:48 · 2301 阅读 · 1 评论 -
【BZOJ1071】【SCOI2007】组队 利用单调性的双指针
题解:O(n*n)首先我们先外圈枚举一个最小权值一然后内圈再枚举一个最小权值二然后每次外圈枚举完了就重置一下双指针,每次内圈枚举的时候右指针右移把总条件符合的加进去,其中第二个权值符合枚举条件的计数。然后左指针右移把第一个权值不符合的清出去,其中第而个权值符合枚举条件的计数。因为单调性问题,所以不会有l>r 的情况(第一权值不符合的在右指针右移时,第原创 2015-02-02 13:07:43 · 2278 阅读 · 1 评论 -
【BZOJ1342】【Baltic2007】Sound静音问题 单调队列
题意:虽然这道题是汉语的,但是我有必要说一下题意。就是问你长度为m的区间中,有哪些区间的最大值-最小值注意!!!如果没有方案输出NONE。题解:首先我们可以写一个multiset2400ms+,就是这样,然后貌似还可以写个线段树(不知道有没有人写)但是正解显然是写两个O(n)的单调队列。一个维护当前区间最大值,另一个维护最小值。代码:#include原创 2015-01-21 18:16:36 · 1761 阅读 · 0 评论 -
【BZOJ2282】【Sdoi2011】消防 树的直径+双指针+单调队列 有一系列乱七八糟的证明
题解:首先表示这个代码是线性的,是怎么构造数据也卡不住的! 而网上普遍流行的那个二分的是基于直径长度dd的O(dlog2d)O(dlog_2 d)算法,一旦直径长点,然后数据范围大点,它就挂啦!诶我什么心态啊。算法:首先答案路径一定在某直径上[证明1,见文末],然后我们求出这个直径序列(任一直径即可[证明2,见文末]), 处理出一些数组: fif_i表示i是路径左端点时直径上原创 2015-03-25 20:57:01 · 2455 阅读 · 0 评论 -
【BZOJ1758】【Wc2010】重建计划 分数规划+树分治单调队列check
题解:首先比较显然会想到分数规划模型。 不太好想,先放过。我们树分治处理经过每个点的路径。 然后对于在[L,R][L,R]区间内的每个长度记录最长距离。 然后每棵子树跟之前记录的数组处理一下,算出当前这棵子树中点为一端点,经过根节点(重心)的最优答案,然后再更新记录最长距离的数组。貌似很科学,但是这个更新答案的过程,实际上是O(n2)O(n^2)的,并不能接受。所以就有了下述原创 2015-03-18 18:12:53 · 2856 阅读 · 1 评论