P2985 [USACO10FEB] Chocolate Eating S

原题链接

题解

看到使最不开心的一天尽可能的开心,这是要使最小值尽可能的不小,二分思路由此而来,剩余的就是贪心模拟
最坏时间复杂度约为 O(d·sum(H))5·104·log2(5·1010)1777060.45
坑点:剩下的巧克力要在最后一天全部吃完

Code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll sum[50005]={0},a[50005]={0},ans[50005]={0};
int main()
{
    ll n,d,r=0,l=0;
    cin>>n>>d;
    for(ll i=1;i<=n;i++)  {cin>>a[i];r+=a[i];}


    r+=1;
    while(l<r-1)
    {
        int it=1,i;
        ll mid=(r-l)/2+l;
        for(i=1;i<=d;i++)
        {
            sum[i]=sum[i-1]/2;
            while( sum[i]<mid && it<=n) sum[i]+=a[it++];
            if(sum[i]<mid) break;
        }
        if(i==d+1)l=mid;
        else r=mid;
    }


    cout<<l<<endl;
    int it=1;
    for(int i=1;i<=d;i++)
    {
        sum[i]=sum[i-1]/2;
        while(sum[i]<l && it<=n) {ans[it]=i;sum[i]+=a[it++];}
    }
    while(it<=n)ans[it++]=d;
    for(int i=1;i<=n;i++) cout<<ans[i]<<endl;
    return 0;
}
posted @   纯粹的  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示