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/9 18:30:28

情感计算在AI Agent中的应用:增强LLM的EQ

情感计算在AI Agent中的应用:增强LLM的EQ 关键词:情感计算、AI Agent、大语言模型(LLM)、情商增强、自然语言处理 摘要:本文深入探讨了情感计算在AI Agent中的应用,旨在增强大语言模型(LLM)的情商(EQ)。首先介绍了情感计算和AI Agent的背景知识,包括目的、预期读者、…

作者头像 李华
网站建设 2026/6/10 12:31:10

基于小程序的位置服务的城市路线分享系统的设计与实现

目录摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作摘要 随着移动互联网技术的快速发展&#xff0c;基于位置服务&#xff08;LBS&#xff09;的小程序应用成为城市出行的重要工具。本系统设计并实现…

作者头像 李华
网站建设 2026/6/9 21:34:51

转行大模型必看!30+程序员2个月从零入门,拿下高薪offer的完整攻略

文章是一位30北漂程序员分享从软件开发转行大模型的经历。他描述了作为程序员的困境和职业瓶颈&#xff0c;分析了大模型领域的机会&#xff0c;介绍了相关岗位及工作内容&#xff0c;提供了自学大模型的详细步骤和学习路径&#xff0c;包括数学基础、机器学习理论、数据处理技…

作者头像 李华
网站建设 2026/6/10 11:28:15

免费开源本地图片加水印工具:隐私保护与无上传风险的图片处理方案

对于摄影师、电商卖家、设计师以及自媒体创作者来说&#xff0c;图片加水印是版权保护、品牌推广和素材保护的必要步骤。然而&#xff0c;许多在线工具需要上传图片到云端服务器&#xff0c;这给用户的隐私与数据安全带来了风险。 免费开源、零成本&#xff1a;本工具完全基于…

作者头像 李华
网站建设 2026/6/10 11:18:52

【实战项目5】基于Flink新闻热搜大数据实时分析项目

重要的事情说三遍&#xff1a;有简历修改、职业规划、技术咨询、论文代写、就业培训等需求的&#xff0c;可关注主页并私信我额&#xff01;&#xff01;&#xff01;有简历修改、职业规划、技术咨询、论文代写、就业培训等需求的&#xff0c;可关注主页并私信我额&#xff01;…

作者头像 李华