ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

堆箱子游戏C++程序

2022-01-26 21:03:56  阅读:214  来源: 互联网

标签:箱子 风险系数 系数 游戏 压扁 Wi Si 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,算是贪心算法里简单的一种了。

标签:箱子,风险系数,系数,游戏,压扁,Wi,Si,C++
来源: https://blog.csdn.net/abcdefg135943/article/details/122708480

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有