【传送门:BZOJ2016


简要题意:

  贝西收到了N 块巧克力,她会在接下来的D 天里吃掉这些巧克力,她想制定一个计划,让她每 天的快乐度都保持在较高的水品上。 在第一天刚开始的时候,贝西的快乐度为0。巧克力必须从第一块吃起,不能打乱食用的次序, 因为公牛们是按照这个顺序送给她的。吃掉第i 块巧克力,会让她的快乐度立即增加Ai。贝西在一天 内可以连续食用多块巧克力,也可以一块也不吃。不管如何,当她晚上睡觉之后,快乐度会在半夜减 半,如果快乐度是个奇数,则向下取整。请问贝西应该怎样吃巧克力,才能让她在D 天内最小快乐 度最大呢?


输入格式:

  • 第一行:两个整数N 和D,1 ≤ N;D ≤ 50000

  • 第二行到第N + 1 行:第i + 1 行有一个整数Hi,1 ≤ Hi ≤ 10^6


输出格式:

  • 单个整数:表示贝西在D 天内的最小快乐度的最大值

  • 下来n行输出每个巧克力在哪一天吃掉


样例输入:

5 5

10

40

13

22

7


样例输出:

24

1

1

3

4

5


样例解释:

  第一天吃前两块巧克力,第二天一块都不吃, 接下来三天每天各吃一块。


题解:

  也是二分最小最大值

  然后就一天一天的走,每当当前的欢乐值小于二分的值时,就不停地吃巧克力直到大于等于二分的值(记得开long long)


参考代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
typedef long long LL;
LL a[];int n,d;
int b[],te[];
bool check(LL x)
{
memset(b,,sizeof(b));
LL sum=;
int t=;
for(int i=;i<=d;i++)
{
sum/=;
while(sum<x&&t<=n)
{
sum+=a[t];
b[t]=i;
t++;
}
if(sum<x) return false;
}
return true;
}
int main()
{
scanf("%d%d",&n,&d);
for(int i=;i<=n;i++) scanf("%lld",&a[i]);
LL l=0LL,r=50000000000LL;
LL ans=0LL;
while(l<=r)
{
LL mid=(l+r)/2LL;
if(check(mid)==true)
{
for(int i=;i<=n;i++)
{
if(b[i]==) te[i]=d;
else te[i]=b[i];
}
ans=mid;
l=mid+;
}
else r=mid-;
}
printf("%lld\n",ans);
for(int i=;i<=n;i++) printf("%d\n",te[i]);
return ;
}

BZOJ2016: [Usaco2010 Feb]Chocolate Eating的更多相关文章

  1. BZOJ 2015: [Usaco2010 Feb]Chocolate Giving( 最短路 )

    裸最短路.. ------------------------------------------------------------------------------------ #include ...

  2. 2015: [Usaco2010 Feb]Chocolate Giving

    2015: [Usaco2010 Feb]Chocolate Giving Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 269  Solved: 1 ...

  3. bzoj2015 [Usaco2010 Feb]Chocolate Giving

    Description Farmer John有B头奶牛(1<=B<=25000),有N(2*B<=N<=50000)个农场,编号1-N,有M(N-1<=M<=10 ...

  4. bzoj2014 [Usaco2010 Feb]Chocolate Buying

    Description     贝西和其他奶牛们都喜欢巧克力,所以约翰准备买一些送给她们.奶牛巧克力专卖店里 有N种巧克力,每种巧克力的数量都是无限多的.每头奶牛只喜欢一种巧克力,调查显示, 有Ci头 ...

  5. 【BZOJ】2014: [Usaco2010 Feb]Chocolate Buying(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2014 这应该是显然的贪心吧,先排序,然后按花费取 #include <cstdio> # ...

  6. 【BZOJ】2015: [Usaco2010 Feb]Chocolate Giving(spfa)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2015 这种水题真没啥好说的.. #include <cstdio> #include & ...

  7. [Usaco2010 Feb]Chocolate Buying

    题目描述     贝西和其他奶牛们都喜欢巧克力,所以约翰准备买一些送给她们.奶牛巧克力专卖店里 有N种巧克力,每种巧克力的数量都是无限多的.每头奶牛只喜欢一种巧克力,调查显示, 有Ci头奶牛喜欢第i种 ...

  8. bzoj 2015: [Usaco2010 Feb]Chocolate Giving【spfa】

    因为是双向边,所以相当于两条到1的最短路和,先跑spfa然后直接处理询问即可 #include<iostream> #include<cstdio> #include<q ...

  9. bzoj2016[Usaco2010]Chocolate Eating*

    bzoj2016[Usaco2010]Chocolate Eating 题意: n块巧克力,每次吃可以增加ai点快乐,每天早晨睡觉起来快乐值会减半,求如何使d天睡觉前的最小快乐值最大.n,d≤5000 ...

随机推荐

  1. The Node.js Event Loop, Timers, and process.nextTick() Node.js事件循环,定时器和process.nextTick()

    个人翻译 原文:https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/ The Node.js Event Loop, Ti ...

  2. omi-mp-create源码加注

    omi-mp-create是dntzhang写的小程序框架,主要功能是实现全局状态自动更新和页面间通信,传送门. 代码虽然简单但是注释不多读起来还是需要一点时间理解,因此在上面加入了个人理解的注释方便 ...

  3. Cause of 400 Bad Request Errors

    The 400 Bad Request error displays inside the Internet browser window, just as web pages do. Cause o ...

  4. 越努力越幸运--动态数组vector

    最近回忆山哥写的stl,觉得很好用,也写了一份. 感谢群里的大佬帮忙review,还是很多的问题的. code:https://github.com/HellsingAshen/vector_c.gi ...

  5. Django学习之配置篇

    MTV Model Template View 数据库 模版文件 业务处理 了解Django框架,功能齐全 一.安装Django&Django基本配置 安装Django pip3 django ...

  6. pandas 1 基本介绍

    import numpy as np import pandas as pd pd.Series() 构造数据 s = pd.Series([1, 3, 5, np.nan, 44, 1]) prin ...

  7. JAVA Web项目获取src和WebContent目录下的配置文件

    一,获取src下面的配置文件信息 1,结构图如下: package com.binp.properties; import java.io.FileInputStream; import java.i ...

  8. ifram 实现左侧菜单,右侧显示内容

    一般都是左侧的导航栏中的a标签中写一个target(a标签有target属性), 右侧的div标签中写一个iframe,在iframe中有name的属性,在左侧a标签中的target写上iframe中 ...

  9. css中使用id和class 的不同

    在 CSS 中,类选择器以一个点号显示: .center {text-align: center} 在上面的样例中,全部拥有 center 类的 HTML 元素均为居中. 在以下的 HTML 代码中, ...

  10. 后缀自己主动机(SAM)学习指南

    *在学习后缀自己主动机之前须要熟练掌握WA自己主动机.RE自己主动机与TLE自己主动机* 什么是后缀自己主动机 后缀自己主动机 Suffix Automaton (SAM) 是一个用 O(n) 的复杂 ...