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

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

时间:2025-01-21 19:02:29浏览次数:3  
标签:weight int 头歌 装入 算法 实训 集装箱 最优 include

任务描述


有一批集装箱要装上一艘载重量为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;
}

标签:weight,int,头歌,装入,算法,实训,集装箱,最优,include
From: https://blog.csdn.net/B5201234/article/details/145288822

相关文章

  • 将机器学习算法移植到低端MCU上的实用指南
    将机器学习算法移植到低端MCU上的实用指南在物联网(IoT)和边缘计算迅猛发展的今天,将智能功能嵌入到资源有限的低端单片机(MicrocontrollerUnit,MCU)上,已经成为许多开发者和工程师追求的目标。然而,这一过程充满挑战,但只要掌握正确的方法,也能在低端MCU上实现高效的机器学习应用。......
  • 元强化学习算法—— EMCL —— 《Adapting to Dynamic LEO B5G Systems Meta-Critic L
    原文地址:https://orbilu.uni.lu/bitstream/10993/52996/1/Adapting_to_Dynamic_LEO-B5G_Systems_Meta-Critic_Learning_Based_Efficient_Resource_Scheduling.pdfPS:大概距离这个论文是fake的,无法做验证,其中对引用的算法的描述也是错的,基于一堆错误的东西能搞错对的东......
  • 【轻松掌握数据结构与算法】动态规划
    引言在本章中,我们将尝试解决那些使用其他技术(例如分治法和贪心法)未能得到最优解的问题。动态规划(DP)是一种简单的技术,但掌握起来可能比较困难。识别和解决DP问题的一个简单方法就是尽可能多地解决各种问题。“编程”一词与编码无关,而是源自文献,意思是填充表格,类似于线性规划。......
  • osgearth夜视效果(粗步实现,夜视算法后续改进)
    夜视效果关键代码 //后期资源 std::string strVertShaderFile="../EarthData/Shaders/Post/Post.vert.glsl"; std::string strFragShaderFile="../EarthData/Shaders/Post/Post.frag.glsl"; std::string strPostImageFile="../EarthData/Texture/Ra......
  • 数据结构与算法之递归: LeetCode 39. 组合总和 (Ts版)
    组合总和https://leetcode.cn/problems/combination-sum/description/描述给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回。你可以按任意顺序返回这些组合candid......
  • 第四天算法设计
    希尔排序需求:排序前:{9,1,2,5,7,4,8,6,3,5}排序后:{1,2,3,4,5,5,6,7,8,9}算法设计Shell类:packagesuanfa;publicclassShell{publicstaticvoidsort(Comparable[]a){//先确定增长量inth=1;while(h<a.length/2){h=2*h+1;}......
  • 【高创新】基于matlab斑马算法ZOA-CNN-LSTM-Attention用客流量预测【含Matlab源码 842
    ......
  • 【第一天】零基础入门刷题Python-算法篇-数据结构与算法的介绍(持续更新)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Python数据结构与算法的详细介绍1.基本概念2.Python中的数据结构1.列表(List)2.元组(Tuple)3.字典(Dictionary)4.集合(Set)5.字符串(String)3.Python中的常用算法1.排序算法2.搜索算法3.递......
  • 基于Simulink的匹配滤波器检测算法设计与低信噪比条件下的性能分析
    目录基于Simulink的匹配滤波器检测算法设计与低信噪比条件下的性能分析背景介绍系统架构仿真实现步骤1.创建新的Simulink模型2.添加信号生成模块生成已知信号在Simulink中实现信号生成模块3.添加噪声添加模块添加背景噪声在Simulink中实现噪声添加模块4.添加匹......
  • 改进果蝇优化算法之三:基于分组搜索的果蝇优化算法(G-FOA)
            基于分组搜索的果蝇优化算法(G-FOA)将果蝇群体分为多个小组,每组独立进行嗅觉和视觉搜索,通过信息交换更新最优解,提高搜索效率和全局优化能力。1.果蝇优化算法基础        果蝇优化算法(FruitFlyOptimizationAlgorithm,FOA)是一种基于果蝇觅食行为的......