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

游游的水果大礼包【牛客tracker 每日一题】

游游的水果大礼包

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

游游有n nn个苹果,m mm个桃子。她可以把2 22个苹果和1 11个桃子组成价值a aa元的一号水果大礼包,也可以把1 11个苹果和2 22个桃子组成价值b bb元的二号水果大礼包。游游想知道,自己最多能组成多少价值总和的大礼包?

输入描述:

四个正整数n , m , a , b n,m,a,bn,m,a,b,用空格隔开。分别代表苹果的数量、桃子的数量、一号大礼包价值、二号大礼包价值。
1 ≤ n , m , a , b ≤ 10 6 1≤n,m,a,b≤10^61n,m,a,b106

输出描述:

一个整数,代表大礼包的最大价值总和。

示例1

输入:

3 4 1 2

输出:

4

说明:

组成两个二号水果大礼包,使用了2 22个苹果和4 44个桃子。总价值为4 44

示例2

输入:

1 1 5 6

输出:

0

说明:

显然无法组合成任意一个大礼包

解题思路

本题是有限资源下的双物品组合优化问题,通过枚举其中一种礼包的数量,快速推导另一种礼包的最大可行数量,遍历所有情况取价值最大值,实现简单且效率充足。

1. 问题建模

设制作一号礼包x xx个、二号礼包y yy个,根据资源约束有:

由于两种礼包的价值均为正数,对于任意固定的x xx,最优策略一定是用剩余资源制作尽可能多的二号礼包,因此无需枚举y yy,可直接计算其上限。

2. 枚举策略

枚举一号礼包的所有可能数量x xx

3. 复杂度分析

x xx的枚举次数不超过n / 2 n/2n/2n nn最大为10 6 10^6106,总循环次数约50万次,远低于1秒时间限制,运算开销极低。

总结

核心逻辑:枚举一号礼包的所有可行数量,对每个数量直接计算剩余资源下二号礼包的最大值,遍历所有情况得到总价值的最优解。
关键操作:资源约束推导单变量上限、固定单变量后直接取另一变量最大值、长整型存储避免数值溢出。
效率保障:单重循环百万级以内,运算量极小,代码简洁不易出错。

代码简要说明

  1. 变量定义n、m为苹果和桃子总数,a、b为两种礼包的单位价值,全部使用long long类型,避免乘积溢出。
  2. 枚举上限计算lim为一号礼包的最大可行数量,取苹果可制作数与桃子可制作数的较小值。
  3. 遍历求最优
    • 循环遍历一号礼包数量x从0到lim
    • 计算剩余苹果和剩余桃子,得到当前x下二号礼包的最大数量y
    • 计算总价值,更新全局最大值ans
  4. 结果输出:遍历完成后输出最大总价值。
  5. 输入优化:关闭流同步并解绑 tie,提升输入读取效率。

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll n,m,a,b;cin>>n>>m>>a>>b;ll ans=0;ll lim=min(n/2,m);for(ll x=0;x<=lim;x++){ll y=min(n-2*x,(m-x)/2);ans=max(ans,x*a+y*b);}cout<<ans<<endl;return0;}
http://www.jsqmd.com/news/1212797/

相关文章:

  • 2024终极设计工具集合:Awesome-Design-Tools开源项目推荐资源大全
  • meilisearch-php多模态搜索:图像与文本混合搜索的完整实现方案
  • Next-on-Netlify项目案例研究:真实企业级应用部署经验分享
  • 魔兽争霸III终极优化指南:5分钟解决老旧限制,让经典游戏焕发新生
  • Dante Cloud负载测试:高并发场景下的性能验证
  • ExpressWorks路由参数与SHA1哈希:Param Pam Pam练习的完整实现指南
  • 魔兽争霸III终极兼容性增强插件:5分钟解锁现代游戏体验完整指南
  • QQgroup-annual-report-analyzer Docker部署全攻略:5分钟搭建专业分析平台
  • 未来展望:LFM2.5-Embedding-350M-4bit的优化方向与社区贡献指南
  • libMesh网格优化实战:7种自适应网格细化策略对比
  • Sunshine开源游戏串流服务器:打造你的私人云游戏平台
  • 2026昆山二手机床源头厂家权威方案分析:不同需求下的选择路径 - 全域品牌推荐
  • 2026宜宾靠谱的学历提升机构哪家好推荐 - 谁都没有我好看
  • 高效解锁Spotify高级功能的专业指南:SpotX桌面客户端补丁详解
  • React-checkbox-tree常见问题解决:10个常见错误与调试技巧
  • 如何快速上手 ng2-dnd:10分钟构建你的第一个 Angular 拖放应用 [特殊字符]
  • 如何在Ruby中快速实现文本嵌入?Transformers-ruby零基础教程
  • Display Driver Uninstaller终极指南:深度清理显卡驱动残留的专业解决方案
  • 如何快速掌握围棋AI分析:面向初学者的完整指南
  • Helium-Chromium浏览器数据安全防护:5层防护体系全面保障隐私数据
  • kvcached故障排除:常见问题与解决方案大全
  • DiffusionGemma-26B-A4B-it-6bit未来展望:多模态AI的发展趋势与应用场景
  • 番茄小说下载器:终极离线阅读解决方案,3分钟搭建个人数字图书馆
  • 如何用LosslessCut实现视频无损剪辑:5个常见场景的完整解决方案
  • 为什么选择openeuler/lzu-icc-nsg?网络安全与数据库技术的创新结合
  • CANN/AscendC SIMT half转int函数
  • Moonlight PC常见问题解决:连接失败、延迟过高的快速修复方案
  • 如何快速集成AztecEditor-Android到你的Android项目:3步实现富文本编辑功能
  • 如何快速集成pwa-install:5分钟实现原生级PWA安装体验
  • Windows驱动清理终极指南:用Driver Store Explorer释放数GB空间