
二分查找
文章平均质量分 56
nianiajr
http://www.liangjiarui.com/
展开
-
hdu 4768
找出手持奇数传单的人及其传单数,如果没有则按要求输出,直接暴力肯定是不行的,通常在暴力情况下不行的时候就得想想如何优化,二分是首先应该想到的,首先可以先根据给定的每个社团的所发传单号满足等差数列,由此可以统计一下总的传单数,为偶数则可以得出不存在奇数传单情况,因为奇数传单有且只存在一个,如果否则需要找出手持奇数传单的,接下来就需要二分了,那么如何进行二分呢?先找出最大编号的同学,那么根据分析可知,原创 2013-10-02 23:46:24 · 1229 阅读 · 0 评论 -
POJ 1905
这个作者写的很详细了http://blog.youkuaiyun.com/lyy289065406/article/details/6648562本题用通过推到公式用二分来得出解答就好。#include#include#includeusing namespace std;const double eps =10e-8;int dblcmp(double x){ return xe原创 2013-11-15 12:01:07 · 638 阅读 · 0 评论 -
POJ 3723
将给出的那天的花费进行不间断划分,划为m组,且使得每组的花费最大值最小,此题可以采用二分,通过每次搜寻得出最终答案,二分上下界确定:单天花费最大值必定为下界,而所有天数的花费之和肯定为其上界,每次二分都进行一遍检查,通过检查判断来缩小二分范围,最终得出解答。#include#include#define max(a,b)(a>b?a:b)using namespace std;int原创 2013-11-15 12:06:19 · 704 阅读 · 0 评论 -
poj3122
给N块蛋糕,分给f+1个人要求,尽量大且大小相同,可以浪费也就是可以有蛋糕剩余,那么采用二分,上下界为单个蛋糕体积最大值,0;便可以出解,注意精度问题。#include#include#define pi 3.1415926535898#define max(a,b)(a>b?a:b)const double eps=10e-8;int dblcmp(double x){原创 2013-11-19 09:28:13 · 882 阅读 · 0 评论