堆箱子游戏C++程序
2022/1/26 22:05:26
本文主要是介绍堆箱子游戏C++程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题描述
有N个正方体箱子(编号为1~N ),每个箱子都有一个重量Wi以及一个承重系数Si,你需要把它们全部堆叠在一起,就像一个垂直的高塔。
箱子有可能因为承受的重量太多而被压扁,可以用风险系数来衡量被压扁的概率。每个箱子的风险系数由它上面所有箱子的总重量总重量(不包括它本身)减去它的承重系数来决定。很明显,风险系数越大,该箱子被压扁的概率就越大。
你的任务是确定箱子应该按什么顺序进行堆叠,才能使得所有箱子风险系数中的最大值尽可能小。
输入格式
第一行输入一个整数 N,表示箱子的数量。
接下来N行,每行输入两个整数Wi,Si,第j行表示第j个箱子的重量Wi以及它的称重系数Si 。
输出格式
输出一个整数,表示最大风险系数的最小可能值。
这道题很简单,用一个箱子的重量加上称重系数为标准,从小到大依次排序,然后计算每个箱子的风险系数,再用max函数计算最大风险系数的最小值。
cmp函数:
bool cmp(node a,node b){ return a.kg+a.fengxian<b.kg+b.fengxian; }
输出结果:
for(i=1;i<=n;i++){ max_ans = max(max_ans,ans-p[i].fengxian); ans+=p[i].kg; } cout<<max_ans;
完整的代码请自己“脑补”,回想一下,这道题只用了三百多个B,算是贪心算法里简单的一种了。
这篇关于堆箱子游戏C++程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升