头歌实训作业 算法设计与分析-贪心算法(第2关:最优装载问题)

devtools/2025/1/24 2:37:24/

任务描述


有一批集装箱要装上一艘载重量为C的轮船,共有n个集装箱,其中集装箱i的重量为Wi。
最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。

测试说明
输入和输出说明:
第1行为集装箱数目n和载重限制C
第2行~第n+1行为n个集装箱的重量
输出最优装载方案的集装箱数目,若没有装入任何集装箱,则输出0

输入示例1:
5 10
5
2
6
4
3

输出示例1:
3

说明:
其中一个最优装载方案为
装入重量为2、3和4的集装箱

输入示例2:
2 10
11
12

输出示例2:
0

说明:
集装箱都超重

测试代码: 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;//问题表示
int	n, W;			//集装箱数目, 载重限制
vector<int> weight;	//各集装箱重量,不用下标0的元素//求解结果表示
int maxn;							//存放最优解的集装箱总数目 
vector<int> x;						//存放最优解的各个集装箱装入情况,0不装入,1装入 void solve()						//算法>贪心算法求解最优装载问题
{/* 请在这里填写答案 *//**********  Begin  **********//**********  End  **********/ 
}
int main()
{cin>>n>>W;weight.resize(n);for (int i = 0; i < n; i++)cin>>weight[i];solve();cout<<maxn<<endl;return 0;
}

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;//问题表示
int	n, W;			//集装箱数目, 载重限制
vector<int> weight;	//各集装箱重量,不用下标0的元素//求解结果表示
int maxn;							//存放最优解的集装箱总数目 
vector<int> x;						//存放最优解的各个集装箱装入情况,0不装入,1装入 void solve()						//算法>贪心算法求解最优装载问题
{/* 请在这里填写答案 *//**********  Begin  **********/sort(weight.begin(), weight.end());maxn=0;int rest = W;for( int i=0;i<n;i++){if(rest >= weight[i]){x.push_back(1);rest -= weight[i];maxn++;}else{x.push_back(0);}}/**********  End  **********/ 
}
int main()
{cin>>n>>W;weight.resize(n);for (int i = 0; i < n; i++)cin>>weight[i];solve();cout<<maxn<<endl;return 0;
}


http://www.ppmy.cn/devtools/153021.html

相关文章

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践&#xff08;第2版&#xff09;》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践&#xff08;第2版&#xff09;&#xff08;Linux技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 Lin…

3.2 OpenAI 语言模型总览:GPT 系列的演进与应用解析

OpenAI 语言模型总览:GPT 系列的演进与应用解析 OpenAI 的语言模型,特别是 GPT(Generative Pre-trained Transformer)系列,代表了当前自然语言处理(NLP)技术的前沿。自从推出以来,这些模型不断推进了文本生成、理解和交互的能力,成为了多个应用场景中的核心技术。本文…

css3过渡总结

一、过渡的定义与作用 CSS3 过渡&#xff08;Transitions&#xff09;允许 CSS 属性在一定的时间区间内平滑地过渡&#xff0c;从一个值转变为另一个值。它能够让网页元素的状态变化更加自然、流畅&#xff0c;给用户带来更好的视觉体验。例如&#xff0c;当一个元素从隐藏状态…

vscode 自用插件

vscode按住ctrl鼠标左键无法跟踪跳转方法名&#xff0c;装这些插件就可以 vscode-elm-jump:常规的代码跳转定义 Vue CSS Peek:跳转css定义 vue-helper:变量函数只跳转定义 Vetur 代码提示 Baidu Comate 自动帮你写console.log Turbo Console Log: ctrl alt l 选中变量之后&am…

实战演示:利用ChatGPT高效撰写论文

在当今学术界&#xff0c;撰写论文是一项必不可少的技能。然而&#xff0c;许多研究人员和学生在写作过程中常常感到困惑和压力。幸运的是&#xff0c;人工智能的快速发展为我们提供了新的工具&#xff0c;其中ChatGPT便是一个优秀的选择。本文将通过易创AI创作平台&#xff0c…

在VSCode中使用Jupyter Notebook

在VSCode中安裝Python和Jupyter擴展 在VSC中打开和使用 Jupyter Notebook 创建或打开 Notebook 文件&#xff1a;在 VSCode 中&#xff0c;使用命令面板&#xff08;CtrlShiftP 或 CmdShiftP&#xff09;输入 Jupyter: Create New Blank Notebook 来创建一个新的 Notebook&…

IOS 安全机制拦截 window.open

摘要 在ios环境&#xff0c;在某些情况下执行window.open不生效 一、window.open window.open(url, target, windowFeatures) 1. url&#xff1a;「可选参数」&#xff0c;表示你要加载的资源URL或路径&#xff0c;如果不传&#xff0c;则打开一个url地址为about:blank的空…

grafana新增email告警

选择一个面板 比如cpu 新增一个临界点表达式 input选A 就是A的值达到某个临界点 触发告警 我这边IS ABOVE0.15就是cpu大于0.15%就触发报警&#xff0c;这个值怎么填看指标的值显示 这里要设置一下报警条件 这边随便配置下 配置标签和通知&#xff0c;选择你的邮件 看下告警…