zoukankan      html  css  js  c++  java
  • POJ 3273

    传说中的二分穷举

    题意是:农夫每天有一个花费预算,一个n天,把这n天划分成m组,注意,n天的顺序是不能变的。这道题求得是一个划分依据k,每组的最大花费不能超过k,所以,要通过二分来寻找这个值。

    上限high是所有的花费,下限low是所有花费中的最大值。有了上下限,就开始二分,在二分的过程中要判断是否是否能够利用mid值来划分出m组如果划分出来的组数大于m的话,增加mid的值

    如果小于或者等于m的话,减小mid的值。

    网上大牛的代码:

    #include <iostream>
    #include <math.h>
    #include <stdio.h>
    #include <string.h>
    #include <queue>
    using namespace std;
    
    
    int n,m;
    
    bool group(int mid,int money[])
    {
        int sum=0;
        int group=1;
    
        for(int i=0; i<n; i++)
        {
            if(sum+money[i]<=mid)
            {
                sum+=money[i];
            }
            else
            {
                sum=money[i];
                group++;
            }
        }
    
        if(group>m)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    int main()
    {
        while(~scanf("%d%d",&n,&m))
        {
            int *money=new int[n+1];
    
            int low=0;
            int high=0;
    
            for(int i=0; i<n; i++)
            {
                scanf("%d",&money[i]);
                 
                high+=money[i];
                
                if(low<money[i])
                {
                    low=money[i];
                }
            }
    
            int mid;
    
            while(low<=high)
            {
                mid=(low+high)/2;
                if(group(mid,money))
                {
                    low=mid+1;
                }
                else
                {
                    high=mid-1;
                }
            }
    
            printf("%d
    ",mid);
        }
        return 0;
    }
  • 相关阅读:
    csv与xlsx导出
    行业报告
    How JavaScript works: an overview of the engine, the runtime, and the call stack
    CAS单点登陆/oAuth2授权登陆
    YChaos生成混沌图像
    Why数学图像生成工具
    WHY数学图形可视化工具(开源)
    WHY翻写NEHE与红龙的3D图形程序 [开源]
    四边形密铺平面
    数学图形(1.50)三曲线
  • 原文地址:https://www.cnblogs.com/qioalu/p/5152813.html
Copyright © 2011-2022 走看看