二分
cadongllas
这个作者很懒,什么都没留下…
展开
-
HDU5649 DZY Loves Sorting 二分+线段树
上周六BC的最后一道题感觉还是挺经典的做法的,首先因为是n的全排列,所以可以直接二分答案然后用线段树判断,好吧其实bc的题解说的已经很清楚了这是一道良心的基础数据结构题。我们二分a[k]a[k]的值,假设当前是midmid,然后把大于midmid的数字标为11,不大于midmid的数字标为00。然后对所有操作做完以后检查一下a[k]a[k]位置上是00还是11。因为原创 2016-03-22 22:29:17 · 642 阅读 · 0 评论 -
HDU5288 OO’s Sequence 二分
开始刷2015多校对抗赛的第一题题目要求所有子序列中没有其约数的个数显然需要nlogn的算法,对于一个数,我们需要求出最大的子序列,保证这段序列中没有其约数,然后利用乘法原理求解所以就很容易想到用a,b数组分别记录s[i]左右最近的约数的位置下面考虑求出a,b数组首先约数是没有任何办法的,必须用根号n的代价枚举,然后只需要预先记录下每个数字出现的位置,然后利用位置下标的递增性二原创 2016-03-23 23:13:47 · 243 阅读 · 0 评论 -
poj 3122 二分水题
题意不难:有n块高度都为1但底面半径为r不等的圆柱体奶酪,作者邀请了f个朋友参加了他的party,他要把这些奶酪平均分给f+1人,每个人分得奶酪的体积必须相等(这个值是确定的),形状就没有要求。现在要你求出所有人都能够得到的最大块奶酪的体积是多少直接二分即可下界为0,即每人都分不到pie上界为MaxSize,每人都得到整个pie,而且那个pie为所有pie中最大的注意下原创 2016-09-02 22:54:32 · 375 阅读 · 0 评论 -
poj 3111 二分水题
题意:有n个物品的重量和价值分别是w[i]和v[i],从中选出K个物品使得单位重量的价值最大贪心的反例是显然的,nyoj的样例就是本题是个二分的很好例子,可以理解成二分得到一个阈值,然后判断是否够k个,以此得到最优解,而这个正确性也是显然的#include #include #include #include #define rep(i, j,原创 2016-09-02 23:08:01 · 271 阅读 · 0 评论 -
poj 3579 二分
题意:给出N个数,对于存有每两个数的差值的序列求中位数,如果这个序列有偶数个元素,就取中间偏小的作为中位数。N然后每次二分一个差值,进行判断判断的时候每次o(n)遍历,总的复杂度nlogn#include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++)using原创 2016-09-03 10:18:26 · 235 阅读 · 0 评论 -
hdu 4614 线段树+二分
题意:n个花瓶,m个操作,花瓶里面有的有花,有的是空的。1操作是从a开始往右放b朵花,花瓶有了的不放,跳过,直到a右边都放满了花,多余的扔了。输出本次放花的起始位置求和操作可以用线段树解决,操作1的放置的起始位置,通过二分求就可以#include #include #include #include #include #define rep(i, j, k) for(in原创 2016-09-03 15:28:48 · 254 阅读 · 0 评论