zoukankan      html  css  js  c++  java
  • [Usaco2010]Chocolate Eating

    5 5
    10
    40
    13
    22
    7

    24
    1
    1
    3
    4
    5

    分析:二分枚举最小值,尽可能让巧克力最晚吃。

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <map>
    #define range(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define rerange(i,a,b) for(int i=a;i>=b;--i)
    #define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
    using namespace std;
    int n,m,val[50005],ans[50005];
    LL sum;
    void init() {
        cin>>n>>m;
        range(i,1,n)cin>>val[i],sum+=val[i];
    }
    bool judge(LL a){
        LL sum=0,cnt=0;
        range(i,1,m){
            while(sum<a&&cnt<=n)sum+=(LL)val[cnt++];
            if(sum<a)return false;
            sum>>=1;
        }
        return true;
    }
    void solve(){
        LL lef=0,ri=sum,tmpans=0;
        while(lef<=ri){
            LL mid=(lef+ri)/2;
            if(judge(mid))tmpans=max(tmpans,mid),lef=mid+1;
            else ri=mid-1;
        }
        cout<<tmpans<<endl;
        LL tsum=0,cnt=0;
        range(i,1,m){
            while(tsum<tmpans&&cnt<=n)tsum+=(LL)val[cnt],ans[cnt]=i,++cnt;
            tsum>>=1;
        }
        range(i,1,n)cout<<(ans[i]?ans[i]:m)<<endl;
    }
    int main() {
        init();
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    三层架构(我的理解及具体分析)
    static_cast
    1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
    关于Opengl中将24位BMP图片加入一个alpha通道并实现透明的问题
    目标检測的图像特征提取之(一)HOG特征
    curl命令具体解释
    模块管理常规功能自己定义系统的设计与实现(22--第二个模块的增加)
    程序中的魔鬼数字
    MyEclipse-6.5注冊码生成器源代码
    用angularjs开发下一代web应用(二):angularjs应用骨架(二)
  • 原文地址:https://www.cnblogs.com/Rhythm-/p/9333626.html
Copyright © 2011-2022 走看看