算法设计例题:最优装载(贪心)

最优装载问题(将一批集装箱装上一艘载重为轮船,其中集装箱i的重量为Wi(0<=i<=n-1) 最优装载问题是指在装载体积不受限制的情况下,求使得集装箱数目最多的装载方案 ) 最优装载问题是将一批集装箱装上一艘载重为轮船,其中集装箱i的重量为Wi(0<=i<=n-1) 最优装载问题是指在装载体积不受限制的情况下,求使得集装箱数目最多的装载方案 e.g: 设有重量为(4,6,3,5,7,2,9)的7个集装箱,轮船的载重为26,求最优解 选择策略: 重量最轻者先装,可产生最优解 #include<iostream> using namespace std; void boxWeightSort(int boxWeight[],int boxNumber). 阅读详情

算法设计例题:最优装载(贪心)

memory limit: 32768KB    time limit: 1000MS

accept: 14    submit: 35

Description

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

Input

输入的第一个为测试样例的个数T( T <= 100 ),接下来有T个测试样例。每个测试样例的第一行是一个整数n( n <= 1000 )和一个非负数C( C <= 10000 ),分别表示集装箱的个数以及轮船的载重量。接下来有n行,每行一个非负数,表示每个集装箱的重量。

Output

对应每个测试样例输出一行,格式为"Case #: D V",其中'#'表示第几个测试样例(从1开始计),D为轮船可以装载的集装箱数量的最大值,V为满足D最大时轮船的实际载重量。

Sample Input

1
5 100
20
50
120
99
30

Sample Output

Case 1: 3 100

#include"iostream"
#include"map"
usingnamespace std ;
float c = 10 ;
int  d = 0 ;
int sum = 0 ;
classElement{
public:
    intx ;
    floatw ;
};
voidloding(multimap <float,Element > &m ,int n )
{
    multimap <float,Element >::iterator t  = m.begin();
    while(n>0&&((*t).second).w<=c)
    {
        d=d+(*t).first;
        c=c-((*t).second).w;
        ((*t).second).x=1;
        ++t;
        n--;
        sum++;
    }
}
int main()
{
    intm = 3 ;
    intn ;
    Element e ;
    multimap <float,Element > mm ;
    cin>>m ;
    intj =1 ;
    while(m>0)
    {
 
        cin>>n ;
        cin>>c;
        inti =1 ;
 
        while(i<=n )
        {
            cin>>e.w;
            mm.insert(pair<float, Element >(e.w,e));
            i++;
        }
        loding( mm, n );
        cout<<"Case "<<j<<": "<<sum<<" "<<d<<endl;
        mm.clear();
        sum = 0 ;
        d = 0 ;
        m-- ;
        j++;
    }
    return0 ;
}


贪心算法下的两大经典问题:最优装载问题、最小延迟调度问题 上一篇主要介绍了贪心算法的内容和活动选择问题。本篇主要介绍最优装载问题和最小延迟调度问题 1、最优装载问题 什么是最优装载问题 类似于0-1背包问题那样,有n个集装箱1,2,…,n装上轮船,集装箱i的质量wi,轮船装载重量限制为C,无体积限制。问如何装使得上船的集装箱最多? 这个和前面介绍的完全背包和0-1背包问题差不多一样。然而那些问题是有重量和价值的。这个最优装载问题是只关乎于重量对价值没有要... 阅读详情

相关推荐

加勒比海盗船——最优装载问题-贪心算法

文章目录加勒比海盗船——最优装载问题问题分析算法设计伪代码详解代码 加勒比海盗船——最优装载问题  在北美洲东南部,有一片神秘的海域,那里碧海蓝天、阳光明媚,这,正式传说中海盗最活跃的加勒比海(Caribbean Sea)。17世纪时,这里更是欧洲大陆的商旅舰队到达美洲的必经之地,所以当时的海盗活动非常猖獗,海盗们不仅攻击过往商人,甚至攻击英国皇家舰……  有一天,海盗们截获了一艘装满各...

被一个OIER遗弃的一堆烂代码 3041

最优装载-贪心算法

有一批集装箱要装上一艘载重量为 c 的轮船。其中集装箱 i 的重量为 wi。最优装载问题要求在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。其符合贪心的两个基本要素:1:贪心选择性质(即所求问题的整体最优解可以通过一系列局部最优的选择--贪心选择达到)2:最优子结构性质。cout

m0_71272694的博客 1885

算法设计——装载问题(两轮船)(回溯)

问题 要求确定一个合理的装载方案将n个集装箱装入两艘船,如果有,找出一种方案 分析 我们之前用贪心做过一艘船的最优装载问题(将尽可能多的集装箱装入),即将重量小的集装箱先装。 那么我们看看这个题,如果用贪心的话能不能做出来。 假设两艘船载重量为100 100, 假设有5个物体,重量为20 30 40 50 60,如果我们用贪心算法,那么第一艘船装入的物品为 20 30 40,共三个 那么另一艘船...

Doro_的博客 6049

算法--贪心算法--最优装载

贪心算法 1.一个贪心算法总是做出当前最好的选择,也就是说,它期望通过局部最优选择从而得到全局最优的解决方案。 2.两个特性: 贪心选择性质和最优子结构性质。 ①贪心选择:问题的整体最优解通过一系列局部最优的选择得到.(没有回溯) ②最优子结构:一个问题的最优解包含其子问题的最优解 3.步骤: ①先确定贪心策略,选择最好的一个方案 ②根据贪心策略,一步一步得到局部最优解 ③把所有局部最优解合成为原来问题一个全局最优解 最优装载问题 在容器容量固定的情况下,运用贪心算法求解最优装载问题,要求装的物品最多,先从

weixin_46443427的博客 1240

贪心算法(Python实现)

贪心算法(Greedy Algorithme)含义: 在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。 下面我们通过具体的问题去应用贪心算法。 最优装载问题 问题描述: 有一天海盗们截获了一艘装满各种各样古董的货船,每一件都价值连城,一旦打碎就是去了价值, 海盗船载重量为C,每件固定的重量...

Mr_fengzi的博客 6328

算法设计与分析 实验四 贪心算法

目录实例1 最优装载问题实例2 单源最短路径问题实例3 最小生成树Prim算法krustal算法 实验平台:cLion 编程语言:C语言或C++ 实例1 最优装载问题 问题描述:有一批集装箱要装上一艘载重量为C的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。 问题可以描述为: 其中,变量xi=0表示不装入集装箱i,xi=1表示装入集装箱i。 问题:采用贪心算法实现最优装载。 // // Created by 拔牙不打麻药 on 2021/5/1

拔牙不打麻药 1954

算法设计——最优装载问题(贪心算法)

问题描述 分析 满足贪心选择性质和最优子结构性质 贪心选择性质 设集合{x1,x2,x3,x4,xn}是箱子重量从小到大的排序,如果集合A是此问题的一个最优解,如果A的第一个箱子k=1,那么A满足贪心选择性质的最优解,如果k!=1,那么存在一个集合B=A-{k}+{1},此时A,B内元素个数一样多,但是B的总重量更小,说明B也是最优解,那么一定存在一个以贪心选择开始的最优解 最优子结构性质 设(...

Doro_的博客 1万+

回溯法的一个应用:最优装载问题

上一篇我们介绍了回溯法。了解了回溯法的空间状态是树形结构。本篇介绍一个回溯法的一个应用:最优装载问题。 最优装载问题 我们在贪心法中介绍过最优装载问题,本篇是说它的加强版本。由于是加强版本,自然问题也变了,比原先的最优装载问题复杂了一些。原先问题是1艘轮船。而加强版的是2艘轮船 什么是加强版的最优装载问题 有n个集装箱,需要装上两艘载重为c1和c2的轮船。wi为第i个集装箱的重量,且w1+w2+…...

qq_41926985的博客 5203

算法设计与分析——贪心算法——具有贪心性的证明——局部最优可以得到全局最优

文章目录基本知识回顾如何证明问题具有贪心选择性质样例一:活动安排问题问题描述总有一个以贪心选择为开始的最优解样例二、最优装载的贪心性证明问题描述证明过程分析与总结 基本知识回顾 贪心算法的基本要素 最优子结构性质:一个问题的最优解包含其子问题的最优解时,称这个问题具有最优子结构性质 贪心选择性质:所求问题的整体最优解可以通过一系列的局部最优解选择,也就是贪心选择来得到。 这也是贪心算法对于最优解问题可行的基本要素,是贪心算法区别于动态规划算法的主要区别 如果要使用贪心算法,一定要证明由算法所得到的解是

Blackoutdragon的博客 5304

贪心算法在最优装载问题中的应用报告

贪心算法是一种在每一步选择中都采取最优选择的策略,以期获得全局最优解。它不考虑整个问题,只关注当前步骤。虽然贪心算法不能保证得到最优解,但在某些问题上,它是最有效的方法之一。最优装载问题(Optimal Loading Problem),又称为装载问题或容器装载问题,是组合优化领域中的一个典型问题。在该问题中,目标是在满足一定约束条件的基础上,例如容器的容量限制,将一组物品高效地装载到一个或多个容器中,以达到某种优化目标,如最大化装载的物品价值或数量等。

weixin_28713083的博客 893

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

Description 有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。 编程任务: 对于给定的n个集装箱和轮船的载重量C,编程计算装入最多时的集装箱个数。 Input 输入由多组测试数据组成。 每组测试数据输入的第1行中有2个正整数n和C。正整数n是集装箱个数;正整数C是轮船的载重量。接下来的一行中有n个整数,分别表示n个集装箱的重量,它们之间用空格分隔。 Output 对应每组输入,输出的每行是计算出的装入最多时的集装箱个数。 Sample Input 4 5 3 5 2 1 Sample Output 2

贪心算法-最优装载问题

贪心算法-最优装载问题 学习贪心算法,我们要先了解一下贪心的本质是什么 贪心本质 一个贪心算法总是做出当前最好的选泽,也就是通过局部最优选择从而得到全局最优选择,从而实现自己的目标。 贪心算法的注意事项 1.贪心算法只能向前走而不能后退 2.局部的最优解可能不是最终的最优解,而是最优解的近似解 3.在面对一个问题时,往往具有多种贪心选择策略,而选择什么样的策略则直接决定设计算法的好坏 贪心算法的两个重要特性 1>贪心选择性质 2>最优子结构性质 1>贪心选择性质 是指原问题的整体最优解是可

qq_45325217的博客 6957

w.rar_N.W._装箱 重量_装载_装载问题_轮船装载

子集树回溯法 试设计一个用回溯法搜索子集空间树的函数。该函数的参数包括结点可行性判定函数和上界函数等必要的函数,并将此函数用于解装载问题。 装载问题描述如下:有一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。

贪心算法--最优装载问题

题 目 贪心算法–最优装载问题 学 院 信息工程学院 年级专业 班 级 学 号 姓 名 指导教师 目录第1章 问题描述 11.1问题描述 11.2数字实例 1第2章 算法思想及算法设计分析 22.1基本思想 22.2贪心算法原理 22.3贪心算法基本要素 22.4贪心算法求解的三个步骤 32.5使用贪心算法解决最优装载问题 32.6解题思路 32.7系统流程图 4第3章 程序编码与复杂性分析 53.1编码实现 53.2 编码优化 63.3算法复杂度分析 6第

weixin_46790290的博客 7465

第十一届全国大学生GIS应用技能大赛——广西区域发展布局示意图

我们需要制作一幅广西区域发展布局示意图,最终成图参考“数据”文件夹中的广西区域发展布局示意图.png。地图使用的投影坐标系是 Asia_North_Albers_Equal_Area_Conic,其中地理坐标系是China_Geodetic_Coordinate_System_2000,中央经线东经 105°,标准纬线是北纬 25°和北纬 47°,出图比例尺 1:4,780,000。

@HNUSTer的博客 7795

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

贪心算法

贪心算法贪心算法主要使用场景场景注意事项得不到最优解的处理方法输入参数分析误差分析结构模板结构模板主体实现cpp证明方法数学归纳法第一数学归纳法适用范围归纳基础归纳步骤第二数学归纳法适用范围归纳基础归纳步骤经典问题活动选择问题问题描述算法设计贪心设计*证明*数学归纳法命题归纳基础归纳步骤例题演示实现cpp最优装载问题问题描述建模算法设计贪心策略贪心过程*证明*数学归纳法命题归纳基础归纳步骤例题演示实现最小延迟调度问题描述建模算法设计贪心策略贪心设计*证明*交换论证贪心算法解的性质引理1证明要点例题演示实现c

JalanChao的博客 4572

YOLOv11改进 | Neck篇 | 双向特征金字塔网络BiFPN助力YOLOv11有效涨点

本文给大家带来的改进机制是BiFPN双向特征金字塔网络,其是一种特征融合层的结构,也就是我们本文改进YOLOv11模型中的Neck部分,它的主要思想是通过多层级的特征金字塔和双向信息传递来提高精度。本文给大家带来的结构可以让大家自行调节网络结构大小,同时能够达到一定的轻量化效果,为什么发BiFPN呢因为它算是YOLO系列改进中的常青树了,大家可以借鉴它的双向特征思想来创新自己的Neck结构本文的BiFPN通过yaml文件配置可以让大家自行调配其结构。

Snu77的博客 9098

【算法设计与分析】贪心法(其二) - - - 最优装载问题

贪心法其二 - - - 最优装载问题的问题概述,分析,例题演示,以及关于贪心选择性质、最优子结构性质的算法正确性证明。包含C、C++、Java、Python不同版本的代码实现

weixin_73917991的博客 3572

10.28华为OD机试真题 新系统 - 社交网络消息转发 (Java/Py/C/C++/Js/Go)

10.28华为OD机试真题 新系统 - 社交网络消息转发 (Java/Py/C/C++/Js/Go)

算法大师! 413

ARFoundation系列讲解-教程目录

一、教程目录 ARFoundation快速入门-01简介 ARFoundation快速入门-02环境搭建 ARFoundation快速入门-03环境配置之iOS ARFoundation快速入门-04环境配置之Android ARFoundation快速入门-05ARKit设备支持列表 ARFoundation快速入门-06ARCore设备支持列表 ARFoundation快速入门-07检查设备支持 ARFoundation快速入门-08平面检..........

a451319296的博客 3万+

【算法设计与分析】实验5:贪心算法—装载及背包问题

贪心算法是一种逐步构建解决方案的算法策略,贪心算法通过一系列局部最优选择来构建全局最优解,其关键在于每一步选择都是当前状态下的最佳决策,是自顶向下的策略动态规划算法一般是自底向上解决问题。贪心选择性质和最优子结构性质。

m0_73970214的博客 1600

基于Simulink的转向控制系统仿真建模示例

本文完成了基于 Simulink 的 EPS 转向控制系统仿真,实现了:✅掌握 EPS 助力控制基本原理✅构建车速敏感的可变助力策略✅在 Simulink 中验证低速轻便、高速沉稳的手感✅达成“安全、舒适、高效”的现代转向系统。

xiaoheshang_123的博客 86

贪心算法之最优装载问题

在北美洲东南部,有一片神秘的海域,那里碧海蓝天、阳光明媚,这正是传说中海盗最活跃的加勒比海(Caribbean Sea)。17 世纪时,这里更是欧洲大陆的商旅舰队到达美洲的必经之地,所以当时的海盗活动非常猖獗,海盗不仅攻击过往商人,甚至攻击英国 皇家舰… 有一天,海盗们截获了一艘装满各种各样古董的货船,每一件古董都价值连城,一旦打碎就失去了它的价值。虽然海盗船足够大,但载重量为C,每件古董的重量为wi,海盗们该如何把尽可能多数量的宝贝装.上海盗船呢? 问题分析 根据问题描述可知这是-一个可以用贪心算法求解的

Hai-Yang-code的博客 2109

Pixhawk2.4.8接口及引脚定义

pixhawk2.4.8接口定义图解

加斯顿工程师的博客 8744

set_input_delay/set_output_delay介绍

针对这一类的情况,在做block时,cts之后,便需要将update_io_latency给关闭。那么,计算的timing就是错误的了。对于hier flow来讲,切分block,进行timing budget的时候,clock tree还未长。计算block端口上的timing,通常需要用到set_input_delay和set_output_delay告知工具外部电路的延迟信息,以方便工具计算端口上的timing。此时,工具在计算in2reg的timing时,便会将2.67ns的delay带进来。

芯冰乐 318
上一篇: 回溯法解最优装载问题
下一篇: 批处理作业调度(回溯)
laohan_
博客等级 码龄15年 112粉丝 224原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值