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

题解:洛谷 CF106C Buns

【题目来源】

洛谷:CF106C Buns - 洛谷

【题目描述】

Lavrenty 是一名面包师,他打算制作若干带馅的面包并出售。

Lavrenty 有 \(n\) 克面团,以及 \(m\) 种不同类型的馅料。馅料类型编号为 \(1\)\(m\)。Lavrenty 知道他还剩下第 \(i\) 种馅料 \(a_i\) 克。制作一个第 \(i\) 种馅料的面包需要恰好 \(b_i\) 克该种馅料和 \(c_i\) 克面团。这样的面包可以卖 \(d_i\) 图格里克。

他也可以制作没有馅料的面包。每个这样的面包需要 \(c_0\) 克面团,可以卖 \(d_0\) 图格里克。因此,Lavrenty 可以制作任意数量的带不同馅料或无馅料的面包,直到面团和馅料用完为止。烘焙后剩余的所有材料都会被丢弃。

请你计算 Lavrenty 能获得的最大图格里克数。

【输入】

第一行包含 \(4\) 个整数 \(n\)\(m\)\(c_0\)\(d_0\)\(1 \leq n \leq 1000\)\(1 \leq m \leq 10\)\(1 \leq c_0, d_0 \leq 100\))。接下来的 \(m\) 行,每行包含 \(4\) 个整数。第 \(i\) 行包含 \(a_i\)\(b_i\)\(c_i\)\(d_i\)\(1 \leq a_i, b_i, c_i, d_i \leq 100\))。

【输出】

输出一个整数,表示 Lavrenty 能获得的最大图格里克数。

【输入样例】

10 2 2 1
7 3 2 100
12 3 1 10

【输出样例】

241

【算法标签】

《洛谷 CF106C Buns》 #背包DP#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 1005;  // 数组最大容量
int n, m, c0, d0, p[105], w[105], cnt, ans;  // n: 总面团重量,m: 面包种类数,c0/d0: 原始面包的消耗/收益,p: 收益数组,w: 消耗数组,cnt: 物品计数器,ans: 最大收益
int dp[N];  // 动态规划数组int main()
{cin >> n >> m >> c0 >> d0;  // 读入总面团重量、面包种类数、原始面包的消耗和收益// 处理每种面包for (int i = 1; i <= m; i++){int a, b, c, d;cin >> a >> b >> c >> d;  // 读入:a(可用面团),b(制作一个需要的基本数量),c(制作一个的消耗),d(制作一个的收益)int t = a / b;  // 计算可以制作的最大数量// 二进制拆分优化for (int j = 1; j <= t; j *= 2){cnt++;w[cnt] = c * j;  // 总消耗p[cnt] = d * j;  // 总收益t -= j;}if (t > 0)  // 处理剩余部分{cnt++;w[cnt] = c * t;p[cnt] = d * t;}}// 01背包:使用二进制拆分后的物品for (int i = 1; i <= cnt; i++){for (int j = n; j >= w[i]; j--){dp[j] = max(dp[j], dp[j - w[i]] + p[i]);}}// 计算最终答案:考虑制作原始面包for (int j = 0; j <= n; j++){// dp[j]是使用j克面团制作特殊面包的最大收益// 剩余n-j克面团用来制作原始面包ans = max(ans, dp[j] + (n - j) / c0 * d0);}cout << ans << endl;  // 输出最大收益return 0;
}

【运行结果】

10 2 2 1
7 3 2 100
12 3 1 10
241
http://www.jsqmd.com/news/392203/

相关文章:

  • 2026年必看!单北斗GNSS变形监测大坝监测推荐榜单,助力安全管理与风险预警
  • 如何搭建微信小程序商城 - 码云数智
  • 基于jQuery与CSS3的全屏3D旋转木马焦点图特效实战代码 - 实践
  • 基于深度学习的西红柿成熟度检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Django+web+训练代码+数据集)
  • OpenCV Python技术文档
  • 实测对比后一键生成论文工具 千笔·专业论文写作工具 VS 知文AI 专科生专属
  • OpenCV Python技术文档HFS
  • OpenCV Python技术文档1
  • 少走弯路:千笔·降AIGC助手,好评如潮的降AIGC软件
  • OpenCV Python技术文档,OpenCV Python技术文档
  • 定稿前必看!专科生专属降AI平台 —— 千笔·降AI率助手
  • 对比一圈后,AI论文工具千笔ai写作 VS 灵感风暴AI,专科生首选
  • 用数据说话!AI论文工具 千笔·专业学术智能体 VS 云笔AI,专为本科生打造
  • 2026中型货架品牌排行:实力与口碑的双重考验,层板货架/阁楼货架/穿梭式货架/重型货架,中型货架生产商哪家靠谱 - 品牌推荐师
  • 【雷达原理 学习笔记 卫青老师】54. P54 雷达作用距离(十一)55. P55 雷达作用距离(十二)
  • 完整教程:C/C++并发编程详解:如何写出优秀的并发程序
  • 2.18
  • 除夕王炸!Qwen3.5 全面实测:性能对标GPT‑5.2,价格仅1/18!
  • 实用指南:ES-7.10-高亮HighLight知识点总结
  • 小智Pro:让小智控制 OpenClaw,一个MCP连接海量Skills
  • PVD真空预压FLAC3D数值模拟:探索软土地基处理的数字之旅
  • 2026潮汐瀑布口碑企业精选,带你领略风采,潮汐瀑布公司深度剖析助力明智之选 - 品牌推荐师
  • SLAM技术的发展及其在自动驾驶与具身智能领域的应用【2026年2月】
  • 强烈安利!9个AI论文写作软件测评:本科生毕业论文+科研写作必备工具推荐
  • 大棚AI全自动环境控制,输入CO2,温,湿,光照,处理,多因子联动控制,输出,通风/遮阳/喷淋指令。
  • 美团三面:我在美团超市凑了 300 块满减,后台为什么要拆成 3 个单?答错这道题,我的 Offer 没了。
  • 字节二面:Select * 2000万行会炸内存吗?这一问,把多少高级开发打回了原形!
  • 上海装修设计新选择:2026原木风室内设计厂家推荐合集,奶油风装饰设计/现代简约装修,上海装修设计团队怎么选择 - 品牌推荐师
  • 深入理解 Vue3 的 v-model 及自定义指令的实现原理(中)
  • 盘点当前口碑较好的泄爆墙设计与施工机构,泄爆墙推荐10年质保有保障 - 品牌推荐师