随笔分类 -  基础算法---二分

摘要:"POJ2018 Best Cow Fences" Sol: 题目要求一个平均数最大且长度不小于L的子段,并输出平均数 1000的 整数部分(直接截取而非舍入) 以下思路来自PKU李煜东神犇的《算法竞赛进阶指南》 我们将问题转化一下:相当于将序列中每个数都减去同一个值,且最大子段和非负(即能够找到一 阅读全文
posted @ 2018-10-09 23:25 dprswdr 阅读(427) 评论(0) 推荐(0)
摘要:(一)二分 答案必须具有单调性!! 一。整数集合上的二分 有两种不同的写法:当check(mid)成立时,若答案在右区间,采用第一种写法;反之,若答案在左区间,采用第二种写法。采用配套写法,可以防止死循或漏解。 ① ② 注意:若存在负整数的情况,需采用mid=(xxx)>>1而非mid=(xxx)/ 阅读全文
posted @ 2018-08-05 12:37 dprswdr 阅读(207) 评论(0) 推荐(0)
摘要:传送门 思路:加上能够养活x个妹子,那么必定能养活<x个妹子,满足单调性,可以二分。 我们二分能够养活的最大的妹子数量。对于当前已经符合check函数的mid,ans一定在[mid,r]的区间内, 因此采用 mid=(l+r+1)>>1;if(check(mid)) l=mid;else r=mid 阅读全文
posted @ 2018-08-04 21:11 dprswdr 阅读(114) 评论(0) 推荐(0)
摘要:传送门 一.二分+二分图染色 最小的最大,考虑二分。 每次二分影响值,将影响值不小于mid的两个人关进不同的监狱,即染成不同的颜色,分到二分图的两个不同的集合中。若最终形成的图是二分图,说明这种分法可行,影响值还有变小的可能;否则影响值只能更大。 二.并查集 贪心地想,将每对罪犯按影响值从大到小进行 阅读全文
posted @ 2018-06-02 07:25 dprswdr 阅读(150) 评论(0) 推荐(0)
摘要:二分答案 O(nlogm) 对一段有序的序列 每次二分,从而快速的查找。解决的问题常是“使最大值最小”或“使最小值最大”。 注意:①注意二分的序列是有序的,对于无序的序列进行二分需要先排序。 ②二分的区间尽可能大(给定区间左右端点+-1) ③根据题目要求,设定好check函数。 ④防止死循环。↓ 模 阅读全文
posted @ 2017-12-02 12:10 dprswdr 阅读(380) 评论(0) 推荐(0)