
二分搜索
Jerry233
acm小白-从入门到出门左转
展开
-
CodeForces - 514D :R2D2 and Droid Army(二分、暴力)
原题链接:CodeForces - 514D 题意:有n个机器排成一列,每个机器有m种类型的描述,每种类型的描述包括a个细节,现在你有m种类型的武器,可以射击k次,第i种武器一次可以摧毁该列所有机器的第i种类型的一个细节,当一个机器的所有细节都被摧毁即被消灭了,问各种类型分别射击多少次才能使连续消灭的机器的长度最大 思路:将每种类型的细节数记录到multiset中,对同一行的各列求和,判断是否满足原创 2017-07-26 19:45:53 · 419 阅读 · 0 评论 -
POJ: Aggressive cows(二分、最大化最小值)
题目链接:POJ: Aggressive cows题目大意:有N个桩和C头牛,将牛系在桩上,已知N个桩的位置坐标,因为牛和牛会相互攻击,所以要尽可能远离,问怎么系才能使离得最近的两头牛的距离最大化。题目分析:典型的二分,最大化最小距离;就是在能系下这C头牛的条件下尽可能让最小距离增大AC代码:#include#include#includeusing namespace原创 2018-01-30 20:36:31 · 460 阅读 · 0 评论 -
POJ: Drying(二分、值最小化)
题目链接:POJ - 3104 题意:有n件湿衣服,分别给出其含水量。若衣服放在空气中,每分钟含水量会减少1;若把衣服放进烘干器里面则含水量每分钟会减少k,当衣服含水量为0时说明衣服已经干了,现在问要至少经过多少分钟能使所有的衣服都干了 思路:设每件衣服要mid" role="presentation" style="position: relative;">midmidmid分钟干,其原创 2017-07-26 22:20:10 · 464 阅读 · 0 评论 -
POJ: River Hopscotch(二分搜索)
题目链接:POJ - 3258 题意:有一群牛要过河,河中间有N个石墩,告诉了石墩与起点的距离(即坐标),和终点的坐标,现在要去掉M个石墩,但要使牛过河跳跃的最小距离最大化,要求输出该最小距离 思路:最大化最小值,二分搜索 被这道题目题目坑了好多次。。下面枚举一下可能的坑: 1、题目给的桩的坐标并不是按顺序的,所以要提前排一个序; 2、在判断能否去掉时,未考虑桩到终点的距离,因为桩原创 2017-07-26 23:39:11 · 248 阅读 · 0 评论 -
HDU - 2199:Can you solve this equation?(二分求根、零点逼近)
题目链接:Can you solve this equation? 题目大意:多项式求根,精确到10-4,数据范围是0到100 思路:很明显该多项式在0到100是递增的,故可以用零点逼近法,先求出多项式的最大值和最小值,然后在这个区间二分搜索,直到满足精度为止 AC代码:#include#include#includeusing namespace std;doubl原创 2017-07-30 09:56:20 · 309 阅读 · 0 评论 -
HDU - 2141:Can you find it?(二分搜索)
题目链接:HDU - 2141:Can you find it? 题意:给你三组数,要你各从三组数中挑出一个,满足Ai+Bj+Ck=X" role="presentation" style="position: relative;">Ai+Bj+Ck=XAi+Bj+Ck=XA_i+B_j+C_k = X,若满足输出YES,否则NO 思路:典型的二分搜索,先A、B求和并排序,然后二分搜索ab原创 2017-07-30 09:40:57 · 698 阅读 · 0 评论 -
二分查找写法总结(找元素,定区间,求精度)
在有序表中查找元素常常使用二分查找,也可以叫折半查找,它是通过二分区间不断的缩小查找范围,已达到快速查找的目的,基本思路就像“猜数字游戏”:你心里想一个不超过1000的正整数,我可以保证在10次之内猜到它,只要你告诉我每次是大了还是小了或是相等。在ACM中,二分查找经常穿插在各类题型中,用途很广泛,是必须要掌握的一个算法。一、 整型二分查找采用逐步缩小范围的思维方法,它遵循分治三步法,原创 2017-08-27 00:18:33 · 1481 阅读 · 0 评论 -
POJ - 2785 : 4 Values whose Sum is 0(二分、STL上下界函数)
题目链接:POJ - 2785 : 4 Values whose Sum is 0 题目大意:四组数中各选一个使满足a+b+c+d=0,问有多少种组合方式 思路:先a+b和c+d组合分别得到一个数组,排序后可以用二分,但这里需要注意一点,前面我们用二分是查找存不存在使满足条件的组合,很简单,而这里是要我们计算有多少种组合,所以二分的时候要先用二分查找有序数组中满足条件的第一个值,然后向后搜原创 2017-08-01 09:53:02 · 405 阅读 · 0 评论 -
POJ: Monthly Expense(二分,最小化最大值)
题目链接:Monthly Expense 题目大意:FJ记录了接下来连续N天自己每天的开支,现在他想做一个数列清单,这个数列含有M个元素,每个元素代表FJ的一个月消费,每个元素是由连续一天及以上的开支组成,题目问怎样做这个清单才能减小月消费的上限。 题目分析:其实说白了,就是已知一个含有N个元素的序列,通过连续子序列求和得到一个含有M个元素的序列,但M个元素都不能大于某个值(很显然这个值是这个原创 2018-01-29 17:16:26 · 420 阅读 · 0 评论