当前位置: 首页 > news >正文

Solutions P2985 [USACO10FEB] Chocolate Eating S

思路

很明显的贪心+二分,具体就是尽可能的每天少吃,怎么用二分结合呢我们check一个x如果x小于了当天的起床时候的幸福值那么就直接睡觉否则就一直吃吃到大于等于如果全部吃完还不够那就失败了(题目里面虽然没有说但是数据点没有)这里的x就是我们的目标下界因为我们要最小值最大化所以我们期望的是让每一天的幸福值至少达到x,做法上去二分答案那个x就可以了。
时间复杂度就是 \(\Theta((N + D) \log \sum H_i)\)

实现

AClink。
Accepted Code (C++17)

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define uint unsigned int
#define i128 __int128
#define ld long double
#define fir first
#define sec second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define ls(x) (x<<1)
#define rs(x) (x<<1|1)
#define lowbit(x) (x&-x)
using namespace std;
const int MOD=998244353;
const int MOD1=1e9+7;
//char ibuf[1<<25],*p1=buf,*p2=buf;
mt19937 mrand(random_device{}());
int rnd(int x){ return mrand() % x;}
ll qpow(ll a,ll b){ll res=1;while(b){if(b&1)res=res*a%MOD;a=a*a%MOD,b>>=1;}return res;}
ll gcd(ll a,ll b){ return b?gcd(b,a%b):a;}  
ll lcm(ll a,ll b){ return a/gcd(a,b)*b;}
//C++ 17 -O2
//By MaZhaoze
int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int N, D;cin >> N >> D;vector<ll> H(N);ll sumH = 0;for (int i = 0; i < N; i++) {cin >> H[i];sumH += H[i];}auto feasible = [&](ll X) -> bool {int idx = 0;ll cur = 0; for (int day = 1; day <= D; day++) {while (cur < X && idx < N) {cur += H[idx];idx++;}if (cur < X) return false;      cur /= 2;                      }return true;};ll lo = 0, hi = sumH; while (lo < hi) {ll mid = (lo + hi + 1) / 2;if (feasible(mid)) lo = mid;else hi = mid - 1;}ll best = lo;vector<int> dayEat(N, D);int idx = 0;ll cur = 0;for (int day = 1; day <= D; day++) {while (cur < best && idx < N) {cur += H[idx];dayEat[idx] = day;idx++;}cur /= 2;// if (idx >= N) {// }}while (idx < N) {dayEat[idx] = D;idx++;}cout << best << "\n";for (int i = 0; i < N; i++) {cout << dayEat[i] << "\n";}return 0;
}
http://www.jsqmd.com/news/416564/

相关文章:

  • 建议收藏!别再死磕传统行业!看懂AI大模型,普通人也能逆风翻盘
  • 年夜饭这个战场,必须有我策马扬
  • 2026年比较好的办公渐进多焦点眼镜/近视眼镜优质供应商推荐(信赖) - 品牌宣传支持者
  • 2026年靠谱的LED显示屏批发/LED显示屏热门厂家推荐汇总 - 品牌宣传支持者
  • 收藏级干货|一文搞懂:SFT究竟能教会大模型什么(小白程序员必看)
  • 好写作AI | 实证分析“鬼门关”:AI教你从“看着数据发呆”到“思路清晰”
  • 2026年GEO优化公司大揭秘:谁才是行业真王者? - 品牌测评鉴赏家
  • 科研党收藏!AI论文网站 千笔ai写作 VS 云笔AI,专科生专属写作神器!
  • 春节档扑街、AI炸场,我们为什么还进电影院?
  • 线上医院挂号系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 2026苏州靠谱财税公司推荐|口碑实测,代理记账+工商注册全域适配 - 品牌智鉴榜
  • 2026年评价高的卷帘门/硬质快速卷帘门热门品牌厂家推荐 - 品牌宣传支持者
  • 全国范围内,如何选择擅长政府采购争议解决的律师 - myqiye
  • 2026别错过!继续教育专属AI论文网站 —— 千笔·专业论文写作工具
  • 程序员必读的Prompt Engineering指南
  • 2026年热门的冲压成型/连续生产线冲压厂家选购参考汇总 - 品牌宣传支持者
  • 2026年热门的柜门厚薄通用双阻尼铰链/柜门开合双阻尼铰链用户口碑认可厂家 - 品牌宣传支持者
  • VMware Fusion 25H2u1 for Mac - 免费桌面虚拟化软件
  • 救命神器!千笔·专业降AI率智能体,本科生降重首选
  • 选品不踩坑:2025-2026皮肤状态改善清单看科研认证 - 谈谈-新视野
  • 聚焦2026伺服电子压力机生产厂家口碑推荐榜,找寻优质厂商,整形机/伺服压装机/热压整形机,伺服电子压力机生产厂家哪家好 - 品牌推荐师
  • 中冷管服务商厂家哪家好,河北地区性价比高的有哪些 - 工业设备
  • css
  • 2026潍坊社保代缴公司哪家好?10家专业机构资质与口碑深度测评 - 速递信息
  • VMware Fusion 25H2u1 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
  • 2026年摆盘工艺品/模型摆件/树脂摆件/周年庆摆件/金银纪念章厂家推荐:广东金和定制专业全案供应 - 品牌推荐官
  • 2026年靠谱的管式滑触线/单极滑触线值得信赖厂家推荐(精选) - 品牌宣传支持者
  • git clone报错
  • kubernetes中pod磁盘占用排查
  • 自渡