双指针
文章平均质量分 80
空灰冰魂
这个作者很懒,什么都没留下…
展开
-
【BZOJ1071】【SCOI2007】组队 利用单调性的双指针
题解:O(n*n)首先我们先外圈枚举一个最小权值一然后内圈再枚举一个最小权值二然后每次外圈枚举完了就重置一下双指针,每次内圈枚举的时候右指针右移把总条件符合的加进去,其中第二个权值符合枚举条件的计数。然后左指针右移把第一个权值不符合的清出去,其中第而个权值符合枚举条件的计数。因为单调性问题,所以不会有l>r 的情况(第一权值不符合的在右指针右移时,第原创 2015-02-02 13:07:43 · 2262 阅读 · 1 评论 -
【BZOJ2282】【Sdoi2011】消防 树的直径+双指针+单调队列 有一系列乱七八糟的证明
题解:首先表示这个代码是线性的,是怎么构造数据也卡不住的! 而网上普遍流行的那个二分的是基于直径长度dd的O(dlog2d)O(dlog_2 d)算法,一旦直径长点,然后数据范围大点,它就挂啦!诶我什么心态啊。算法:首先答案路径一定在某直径上[证明1,见文末],然后我们求出这个直径序列(任一直径即可[证明2,见文末]), 处理出一些数组: fif_i表示i是路径左端点时直径上原创 2015-03-25 20:57:01 · 2419 阅读 · 0 评论 -
【BZOJ1071】【SCOI2007】组队 利用单调性的双指针
链接:#include int main(){ puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/43407071");}题解:三个定义:高度h,v速度,Ah+Bv为s 首先我们在外圈枚举来固定其中一个权值,姑且枚举v吧。每次枚举值大写为V。 然后在内圈就可原创 2015-05-15 16:11:17 · 1731 阅读 · 1 评论