news 2026/6/9 17:27:13

USACO历年白银组真题解析 | 2023年2月Bakery

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
USACO历年白银组真题解析 | 2023年2月Bakery

欢迎大家订阅我的专栏:算法题解:C++与Python实现
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总贴:USACO历年白银组真题解析 | 汇总-CSDN博客


【题目描述】

Bessie 开了一家面包店!

在她的面包店里,Bessie 有一个烤箱,可以在tC的时间内生产一块饼干或在tM单位时间内生产一块松糕。 (1≤tC,tM≤10^9)。由于空间限制,Bessie 一次只能生产一种糕点,所以要生产A块饼干和B块松饼,需要AtC+BtM单位的时间。

Bessie的N(1≤N≤100) 朋友都想一个一个地去面包店。第i个朋友一进门就会点ai(1≤ai≤10^9) 块饼干和bi(1≤bi≤10^9) 块松饼。Bessie 没有空间来储存糕点,所以她只有在接到订单后才开始制作糕点。此外,Bessie 的朋友都很忙,所以第i个朋友只愿意等ci(ai+bici≤2⋅10^18) 个单位的时间,然后就伤心地离开。

Bessie 真的不希望她的朋友们伤心,她可以用一块钱升级她的烤箱,让它少花一个单位的时间来生产一块饼干或少花一个单位的时间来生产一个松饼。她不能将她的烤箱升级到花费小于等于 0 的时间,但她可以选择在她的朋友到来之前将她的烤箱升级多少次,只要生产一块饼干和生产一个松饼所需的时间都严格保持为正数。

对于每一个T(1≤T≤100) 的测试案例,请帮助 Bessie 找出她必须花费的最小的钱数量,以便她的面包店能够满足所有的朋友。

【输入】

第一行包含T,测试案例的数量。

每个测试用例都以一行开始,包含N,tC,tM。然后,接下来的N行各包含三个整数ai,bi,ci

测试案例用换行符隔开。

【输出】

Bessie 需要为每个测试案例花费的最少钱数,每行一个。

【输入样例】

2 3 7 9 4 3 18 2 4 19 1 1 6 5 7 3 5 9 45 5 2 31 6 4 28 4 1 8 5 2 22

【输出样例】

11 6

【代码详解】

#include <bits/stdc++.h> using namespace std; #define int long long int T, tc, tM, n; struct node { int a, b, c; }p[105]; bool check(int t) { int lower = max(0LL, t-tM+1); int upper = min(t, tc-1); for (int i=1; i<=n; i++) { if (lower>upper) { return false; } int a = p[i].a, b = p[i].b; int m = a*tc + b*tM - p[i].c; if (m<=0) continue; if (a==b) { if (a*t<m) return false; } else if (a>b) { int x = (m-b*t)/(a-b); if ((m-b*t) % (a-b) && (m-b*t)*1.0/(a-b)>0) { x++; } if (x>upper) return false; lower = max(lower, x); } else { int x = (m-b*t)/(a-b); if ((m-b*t) % (a-b) && (m-b*t)*1.0/(a-b)<0) { x--; } if (x<lower) return false; upper = min(upper, x); } } return true; } signed main() { ios::sync_with_stdio(false); cin.tie(NULL); cin >> T; while (T--) { cin >> n >> tc >> tM; for (int i=1; i<=n; i++) { cin >> p[i].a >> p[i].b >> p[i].c; } int l=0, r = tc+tM-2, ans=r; while (l<=r) { // cout << "enter here" << endl; int mid = (l+r)>>1; if (check(mid)) { ans = mid; r = mid-1; // 如果mid可以满足要求,那就减少的再少一点(题目要求求最小值) } else { l = mid+1; // 否则,那就减少的再多点 } } cout << ans << endl; } return 0; }

【运行结果】

2 3 7 9 4 3 18 2 4 19 1 1 6 11 5 7 3 5 9 45 5 2 31 6 4 28 4 1 8 5 2 22 6
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 20:07:33

Windows右键菜单清理神器:3分钟告别臃肿杂乱,打造高效工作流

Windows右键菜单清理神器&#xff1a;3分钟告别臃肿杂乱&#xff0c;打造高效工作流 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为层层叠叠的右键菜单烦…

作者头像 李华
网站建设 2026/6/4 18:00:57

基于Vue+Node.js的充电桩共享服务管理系统的设计与实现

目录摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作摘要 随着新能源汽车的普及&#xff0c;充电桩资源的需求急剧增长&#xff0c;但存在分布不均、利用率低、管理混乱等问题。设计并实现了一套基于V…

作者头像 李华
网站建设 2026/6/4 17:46:32

新能源汽车养护4S店维修系统的设计与实现

目录新能源汽车养护4S店维修系统的设计与实现摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作新能源汽车养护4S店维修系统的设计与实现摘要 随着新能源汽车市场的快速发展&#xff0c;传统燃油车维修体…

作者头像 李华
网站建设 2026/6/4 17:46:19

03-01:MQ常见问题梳理

1.1&#xff1a;MQ如何保证消息不丢失 1.1.1&#xff1a;哪些环节会有丢消息的可能&#xff1f; 其中&#xff0c;1&#xff08;发送消息的时候&#xff09;&#xff0c;2&#xff08;消息到达服务端持久化的时候&#xff09;&#xff0c;4&#xff08;消费组消费消息的时候&am…

作者头像 李华
网站建设 2026/6/4 18:01:00

DeepSeek V4大模型即将发布,超越Claude的永久免费AI神器,程序员必看!

文章讲述了对即将发布的DeepSeek V4大模型的期待。爆料称V4将专注于代码生成和复杂逻辑&#xff0c;目标超越Claude且永久免费。DeepSeek在底层技术上取得突破&#xff0c;发表《流形约束超连接》论文&#xff0c;并将R1论文扩展至86页。作者期待DeepSeek不仅因为免费好用&…

作者头像 李华