今天做完的了洛谷的二分答案的提单,感触颇深,就此写一写。
二分答案是什么呢?
先思考一个问题,二分究竟它的本质是用来干嘛的?
是用来查找的。
例如:一个有序数组,若要找到某一个数,就去二分比较,logn次后找到一个数。
这就是二分的本质,逐步去筛出答案的位置。这是二分的本质,二分答案便在此基础上建立起来。
如果你知道某道题的答案是个唯一确定的整数,而且范围在1~n之间,那么我们可不可以用二分呢?
当然可以。
那么和例题的有序数组对应的是什么呢?
是从1~n的数
二分比较对应的是什么呢?
是判断当前这个数是否满足某种条件的的一个judge函数(或者是check函数)
那么关键就是这个judge函数,其作用只有一个:就是判断当前已知的这个mid是否满足条件——judge的不确定性就决定了某些二分题目的困难。
那是否二分答案就是只能针对整数呢?
当然不是
在需要的问题的答案是一个确定已知的,就可以进行,小数的出现只需要限定fabs(r-l)<=eps //eps就是一个你需要的精度