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

GESP认证C++编程真题解析 | B3873 [GESP202309 六级] 小杨买饮料

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

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

适合人群:

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

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[B3873 GESP202309 六级] 小杨买饮料 - 洛谷

【题目描述】

小杨来到了一家商店,打算购买一些饮料。这家商店总共出售N NN种饮料,编号从0 00N − 1 N-1N1,其中编号为i ii的饮料售价c i c_ici元,容量l i l_ili毫升。

小杨的需求有如下几点:

  1. 小杨想要尽可能尝试不同种类的饮料,因此他希望每种饮料至多购买1 11瓶;
  2. 小杨很渴,所以他想要购买总容量不低于L LL的饮料;
  3. 小杨勤俭节约,所以在1 112 22的前提下,他希望使用尽可能少的费用。

方便起见,你只需要输出最少花费的费用即可。特别地,如果不能满足小杨的要求,则输出no solution

【输入】

第一行两个整数N , L N,LN,L

接下来N NN行,依次描述第i = 0 , 1 , ⋯ , N − 1 i=0,1,\cdots,N-1i=0,1,,N1种饮料:每行两个整数c i , l i c_i,l_ici,li

【输出】

输出一行一个整数,表示最少需要花费多少钱,才能满足小杨的要求。特别地,如果不能满足要求,则输出no solution

【输入样例】

5 100 100 2000 2 50 4 40 5 30 3 20

【输出样例】

9

【算法标签】

《洛谷 B3873 小杨买饮料》 #动态规划DP# #背包DP# #GESP# #2023#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=505;// 最大物品数量constintINF=0x3f3f3f3f;// 定义无穷大intn,L;// n: 物品数量, L: 最小需要的长度intc[N],l[N];// c[i]: 第i个物品的价格, l[i]: 第i个物品的长度intdp[1000005];// dp[j]: 总长度至少为j时的最小花费intmain(){// 输入物品数量和需要的最小长度cin>>n>>L;// 输入每个物品的价格和长度for(inti=1;i<=n;i++){cin>>c[i]>>l[i];}// 初始化dp数组为无穷大memset(dp,0x3f,sizeof(dp));dp[0]=0;// 总长度为0时的最小花费为0// 动态规划:0-1背包的变形(至少型背包)for(inti=1;i<=n;i++)// 遍历每个物品{for(intj=1000000;j>=l[i];j--)// 从大到小遍历,保证每个物品只用一次{// 状态转移方程:// 不选当前物品:dp[j] 保持不变// 选当前物品:dp[j-l[i]] + c[i]// 取两者最小值dp[j]=min(dp[j],dp[j-l[i]]+c[i]);}}// 在满足长度至少为L的所有方案中寻找最小花费intans=INF;for(inti=L;i<=1000000;i++){ans=min(ans,dp[i]);}// 输出结果if(ans==INF){// 没有找到满足条件的方案cout<<"no solution"<<endl;}else{// 输出最小花费cout<<ans<<endl;}return0;}

【运行结果】

5 100 100 2000 2 50 4 40 5 30 3 20 9
http://www.cnnetsun.cn/news/150976.html

相关文章:

  • FaceFusion更新日志追踪:每月都有新功能上线
  • (Open-AutoGLM实战白皮书)首次公开:跨平台任务调度的7种高效模式
  • 分布式幂等性:30字讲透核心要点
  • FaceFusion能否对接OneDrive?微软生态无缝衔接
  • 【AI模型部署必读】:Open-AutoGLM云端推理速度提升3倍的秘密路径
  • 为什么顶尖团队开始弃用Monica Manus改用Open-AutoGLM?真相在这里
  • 为什么顶尖大厂开始从Appium转向Open-AutoGLM?这3个关键点你必须知道
  • Open-AutoGLM三大黑科技揭秘:彻底摆脱RPA僵化操作的束缚
  • FaceFusion能否处理带有投影变形的墙面视频?
  • 13、全面掌握 Internet Explorer 配置:个性化与优化指南
  • 14、深入了解Internet Explorer的配置与维护
  • 27、常见连接问题解析与解决指南
  • 28、网络资源安全权限设置与故障排除全解析
  • 29、Windows系统安全与权限管理全解析
  • 34、Windows XP 多用户、多引导和联网计算机故障排除及 SP2 安全增强
  • 视觉识别架构之争,Open-AutoGLM与Mobile-Agent的底层逻辑差异,90%开发者都忽略了
  • Open-AutoGLM与Monica Manus执行效率对比(2024最新 benchmark 数据曝光)
  • 【AI模型选型避坑指南】:Open-AutoGLM与AutoGLM沉思机制的3个致命误区
  • FaceFusion开源项目获得Linux基金会支持
  • Ruoyi-AI技术架构完全重构:从单体到云原生的终极指南
  • 41、Windows PE:功能、使用与定制全解析
  • FaceFusion人脸融合过渡是否平滑?动态视频测试
  • FaceFusion人脸姿态估计精度高达98.7%,行业领先
  • AutoGLM沉思功能被超越?Open-AutoGLM的7大创新点全曝光
  • FaceFusion能否实现自动情绪增强功能?
  • Open-AutoGLM与RPA的5大核心差异(自动化技术跃迁指南)
  • OSPF协议
  • Rust Web开发终极指南:Cot框架快速入门教程
  • 5大核心功能使YashanDB数据库适应多种场景
  • 5个YashanDB的成功实施经验借鉴与分享