zoukankan      html  css  js  c++  java
  • poj 3273

        简单二分,下限为每天花费的最大值,上限是所有天数花费的总和.

    #include<iostream>
    #include<cstdio>
    using namespace std ;
    int mon[100005] ;
    int i, j, n, m ;
    int jud(int mid){
        int s=0, count=1 ;
         for (i=0; i<n; i++){
            s += mon[i] ;
            if(s>mid){
                s = mon[i] ;
                count ++ ;
            }
        }
        if(count>m) return true ;
        else    return false ;
    }
    int main(){
        int ans ;
        int max, sum ;
        while(scanf("%d%d", &n, &m)!=EOF){
            max = -1 ;
            sum = 0 ;
            for(i=0; i<n; i++){
                scanf("%d", &mon[i]) ;
                if(mon[i]>max)   max = mon[i] ;
                sum += mon[i] ;
            }
            int l = max, r = sum, mid ;
            while(r>l){
                mid = (l+r) / 2 ;
                if(jud(mid))
                    l = mid + 1 ;
                else
                    r = mid - 1 ;
            }
            cout << l << endl ;
        }

    } 

  • 相关阅读:
    C# Brush Color String 互相转换
    WPF Binding ElementName方式无效的解决方法--x:Reference绑定
    WPF动画应用-几何图形扩散动画
    Timer更新UI的合理办法
    员工管理
    EF CodeFirst 实例Demo
    C# 星期相关代码实例
    WPF Canvas实现进度条
    DispatcherTimer 应用实例
    数据库操作命令
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2220501.html
Copyright © 2011-2022 走看看