[BZOJ2016][Usaco2010]Chocolate Eating(二分)
来源:互联网 发布:澳洲导航软件 编辑:程序博客网 时间:2024/04/20 05:38
题目描述
传送门
题解
二分水题。字典序尽量大只是贪心地判定就行了。
但是也有一个坑点,就是最后没有吃的巧克力都要在最后一天吃完。
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define LL long long#define N 50005const LL inf=1e18;int n,d,b[N],sol[N];LL ans,a[N];bool check(LL mid){ int day,cho;LL happy; day=1;cho=1;happy=0; while (day<=d) { happy>>=1; while (happy<mid&&cho<=n) happy+=a[cho],b[cho++]=day; if (happy<mid) return false; ++day; } for (int i=1;i<=n;++i) sol[i]=d; for (int i=1;i<cho;++i) sol[i]=b[i]; return true;}LL find(){ LL l=1,r=inf,mid,ans=0; while (l<=r) { mid=(l+r)>>1; if (check(mid)) ans=mid,l=mid+1; else r=mid-1; } return ans;}int main(){ scanf("%d%d",&n,&d); for (int i=1;i<=n;++i) scanf("%lld",&a[i]); for (int i=1;i<=n;++i) sol[i]=d; ans=find(); printf("%lld\n",ans); for (int i=1;i<=n;++i) printf("%d\n",sol[i]);}
总结
0 0
- [BZOJ2016][Usaco2010]Chocolate Eating(二分)
- [bzoj2016][Usaco2010]Chocolate Eating(二分+贪心)
- 【bzoj2016】[Usaco2010]Chocolate Eating
- bzoj 2016: [Usaco2010]Chocolate Eating (二分)
- [Usaco2010]Chocolate Eating
- TOJ 3584. Chocolate Eating 【二分+枚举】
- chocolate giving[usaco2010 Feb]
- bzoj2015 [Usaco2010 Feb]Chocolate Giving(最短路裸题)
- bzoj2014 [Usaco2010 Feb]Chocolate Buying
- bzoj2015 [Usaco2010 Feb]Chocolate Giving
- [BZOJ2015][Usaco2010 Feb]Chocolate Giving
- [bzoj2015&&Usaco2010 Feb] Chocolate Giving
- 2015: [Usaco2010 Feb]Chocolate Giving
- BZOJ2015 [Usaco2010 Feb]Chocolate Giving
- BZOJ 2015: [Usaco2010 Feb]Chocolate Giving spfa
- bzoj 2015: [Usaco2010 Feb]Chocolate Giving
- codeforces_689C. Mike and Chocolate Thieves(二分)
- HDU 4302 Holedox Eating (二分+树状数组维护)
- 关于CheckBox状态保存并回显的例子
- [BZOJ2086][Poi2010]Blocks(单调栈)
- 内部类和匿名内部类
- 最近最近~~
- 【c++】c++基础知识
- [BZOJ2016][Usaco2010]Chocolate Eating(二分)
- 字符串的左旋问题解析
- Python初接触--语句
- Java中如何遍历Map对象的4种方法
- C++笔记——c++编程思想(上)第四五六章数据抽象、初始化与清除
- 进驻csdn
- Shaders for Game Programmers and Artists(1) - First Shaders
- 初识gcc编译器
- [BZOJ3401][Usaco2009 Mar]Look Up 仰望(单调栈)