现在的位置: 首页 > 综合 > 正文

[hoj]Pie【二分】

2018年03月17日 ⁄ 综合 ⁄ 共 412字 ⁄ 字号 评论关闭

代码分析

ppt中 【核心代码】

//由于精度差问题,考虑先将面积  *1000000转化为整数来二分
 long long res,mid;
 while (low <= high)//untilend,not ==
    {//low = 0,high = max(size[i])
            mid = (high + low) / 2;
            if (judge(mid) )
            {
                low = mid + 1;
                res = mid;  //最后结果为res
            }
            else
            {
                high = mid - 1;
            }
         }
bool judge(long long mid)
{
   long long p = 0;
   for (int i = 0; i < n; ++i)
   {
        p += size[i] / mid;//相当于面积为自变量、可行人数为函数值了
   }
   return p >= f;
}

直接的考虑是:用较大面积除以人数的【重合部分】,但是需要比较人数的重合与最大面积&次大面积的组合,混乱!

用函数值判断!反正除法,除数和商是可以互换的。

n个个体分成m部分类型的问题,不是直接考虑m如何,而是从总和入手。。

抱歉!评论已关闭.