Chocolate Eating

2024-02-16 17:48
文章标签 eating chocolate

本文主要是介绍Chocolate Eating,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述


这个题的意思是Bessie有n块巧克力,她想分d天吃,每吃一块可以获得Hi的快乐,快乐经过一夜后会减半,问每天最低快乐值最高是多少

#include<iostream>
using namespace std;
const long long INF = 0x3f3f3f3f3f3f3f3f;//一开始写成了int,WA了一晚上
const int maxn = 1e6;
typedef long long ll;ll n, d, ans;
ll h[maxn], c[maxn];bool judge(ll x) {ll sum = 0, cnt = 0;for (int i = 1;i <= d;i++) {sum >>= 1;while (sum < x) {sum += h[++cnt];if (cnt > d) return 0;if (x == ans)c[cnt] = i;}}return 1;
}int main() {cin >> n >> d;for (ll i = 1;i <= n;i++)cin >> h[i];ll l = 0, r = INF;while (l <= r) {//二分法ll mid = (l + r) >> 1;if (judge(mid)) ans = mid, l = mid + 1;else r = mid - 1;}cout << ans << endl;judge(ans);for (int i = 1;i <= n;i++) {if (c[i]) cout << c[i] << endl;else cout << d << endl;}return 0;
}

这篇关于Chocolate Eating的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/715243

相关文章

CodeForces 490D Chocolate

题意: 2块矩形巧克力  如果边长可以整除2  则可以从一半出掰开  吃掉一半  如果可以整除3  则可以从1/3处掰开  吃掉1/3  问  最少吃几次  能使得2块面积相同  输出最后时刻的边长 思路: 面积最多只有10^18  因此形成的面积的种类数最多几万种  我们可以利用面积来暴搜出所有状态  然后找面积相同时的最少步数 PS:数论的方法更好 代码: #include

Educational Codeforces Round 1 E. Chocolate Bar(记忆化搜索)

题目链接 题意:在n*m的矩形切出面积是k 解法:记忆化搜索 #include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y second#define cl(a,b) memset(a,b,sizeof(a))typedef

Big Chocolate

我只想说水得一手好水。。。有必要隐藏这么深嘛。。。。 Big Chocolate Mohammad has recently visited Switzerland . As he loves his friends very much, he decided to buy some chocolate for them, but as this fine chocolate is ver

codeforces #257 C题Jzzhu and Chocolate

题目地址:http://codeforces.com/contest/450/problem/C 这次CF的时候绝壁脑残了。。。A题和C题都出现了脑残失误。。。唯一一个AC的B题还是被HACK了。。。分数也不多了。。。简直sad。。。。。。。。 这题我的思路是分类讨论,分四种情况。 首先让n>=m,如果不是的话,可以交换。主要是考虑切横的多少刀,竖的多少刀。 1:当k>n+m-2,此时,切

Codeforces Round #310 (Div. 1) C. Case of Chocolate (线段树)

题目地址:传送门 这题虽然是DIV1的C。。但是挺简单的。。只要用线段树分别维护一下横着和竖着的值就可以了,先离散化再维护。每次查找最大的最小值<=tmp的点,可以直接在线段树里搜,也可以二分去找。 代码如下: #include <iostream>#include <string.h>#include <math.h>#include <queue>#include <algori

二分+数学,CF 689C - Mike and Chocolate Thieves

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 689C - Mike and Chocolate Thieves 二、解题报告 1、思路分析 考

uva 1099 - Sharing Chocolate(记忆化搜索)

题目链接:uva 1099 - Sharing Chocolate 题目大意:给出一个巧克力,以及它的长和宽,要求判断能否将这个巧克力分成n个指定面积大小的小巧克力。 解题思路:记忆化,d[S][x],表示说集合S,用x = min(r0,c0)的情况能否可行。注意面积要恰好相等才行。 #include <stdio.h>#include <string.h>#in

Codeforces 449A Jzzhu and Chocolate(贪心)

题目链接:Codeforces 449A Jzzhu and Chocolate 题目大意:给定一个n∗m的巧克力,问说切k刀之后,使得说最小的一份面积最大。 解题思路:贪心,尽量切一个方向,比较一下两种的最优解。 #include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef

Codeforces 490D Chocolate(数论)

题目链接:Codeforces 490D Chocolate 两个种变换方式无疑是减掉一个因子3加上一个因子2和减掉一个因子2,所以从因子的角度出发,如果两组数存在不同的质因子肯定是不可以的。剩下的就是构造答案了。 #include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespac

网课:第四章二分、三分、01分数规划---[USACO 2010 Feb S]Chocolate Eating

题目 贝西收到了N(1 <= N <= 50,000)块巧克力,但她不想吃得太快,因此她想为接下来的D(1 <= D <= 50,000)天制定巧克力食用计划,以便在那些天中最大化她的最低幸福水平。 贝西的幸福水平是一个整数,起始值为0,在夜间睡觉时减半(如果必要的话向下取整)。然而,当她吃掉第i块巧克力时,她的幸福水平增加了整数 Hi (1 <= Hi <= 1,000,000)。如果她在一天