装船问题

简介: 装船问题

装船问题

Problem Description

王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中挑选若干吨上船,在满足货物总重量小于等于M的前提下,运走的货物的价重比最大。

Input

输入数据的第一行有一个正整数M(0 < M < 10000),表示所有货物最大载重量。在接下来的10行中,每行有若干个数(中间用空格分开),第i行表示的是第i种货物的货物的总价值pi ,总重量wi。(pi是wi的整数倍,0 < pi , wi < 1000)

Output

输出一个整数,表示可以得到的最大价值。

Sample Input

100

10 10

20 10

30 10

40 10

50 10

60 10

70 10

80 10

90 10

100 10

Sample Output

550

Hint

价重比:计算其价值与重量之比

思路

初看问题,好像和动态规划01背包问题差不多。

仔细分析下,这个可以选取其中的一所货物对此切割,而01背包是不可以切割的,所以这个问题解法思路有2种。

  1. 用结构体来做,排序出来的vi(总价值/总重量),进行加减
  2. 直接数组,排序出来的vi(总价值/总重量),进行加减

代码

#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
struct node
{
    int pi;
    int wi;
    int vi;
}st[100001];
bool cmp(node a, node b)
{
    return a.vi > b.vi;
}
int main()
{
   int m;
   cin>>m;
   for(int i = 0; i < 10; i++)
   {
        cin>>st[i].pi>>st[i].wi;
        st[i].vi = st[i].pi / st[i].wi;
   }
   sort(st,st+10,cmp);
   int sum = 0;
   for(int i = 0; i < 10; i++)
   {
       if(st[i].wi <= m)
       {
           sum = sum + st[i].pi;
           m = m - st[i].wi;
       }
       else
       {
           sum = sum + m * st[i].vi;
           break;
       }
   }
    cout<<sum<<endl;
    return 0;
}


相关文章
|
开发者
语雀
简要讲述语雀文档编辑器的注册使用及个人感受
语雀
|
1月前
|
存储 算法 C++
C++初阶(十六)优先级队列
C++初阶(十六)优先级队列
28 0
|
Arthas 缓存 监控
Watch 命令的参数介绍 | 学习笔记
快速学习 Watch 命令的参数介绍
438 0
Watch 命令的参数介绍 | 学习笔记
|
人工智能 算法 Ubuntu
ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(大数据集)
本例提取了猫狗大战数据集中的部分数据做数据集,演示tensorflow2.X版本如何使用Keras实现图像分类,分类的模型使用ResNet50。本文实现的算法有一下几个特点: 1、自定义了图片加载方式,更加灵活高效,不用将图片一次性加载到内存中,节省内存,适合大规模数据集。 2、加载模型的预训练权重,训练时间更短。 3、数据增强选用albumentations。
1419 0
ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(大数据集)
|
iOS开发
setprecision后是要四舍五入吗?
先说问题: Description 设圆半径r,圆柱高h 求圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 PI=3.14 Input 两个浮点数,r和h Output 圆周长C1、圆面积Sa、圆球表面积Sb、圆球体积Va、圆柱体积Vb。保留两位小数,每个结果后换行。 Sample I
1778 0
|
2天前
|
人工智能 弹性计算 运维
开启运维新纪元!阿里云OS Copilot深度评测 & 体验分享
OS Copilot是Alibaba Cloud为Linux推出的一款基于大模型的智能助手,它能理解自然语言、辅助命令执行和系统运维。目前仅支持Alibaba Cloud Linux 3的x86_64架构。安装过程涉及线上和本地体验,包括申请试用、配置环境变量、安装组件等步骤。OS Copilot提供命令行和多轮交互模式,能进行代码生成和摘要,辅助开发和运维工作。产品体验评测中,OS Copilot因其自然语言理解和高效辅助得到高度评价,尤其对运维人员来说,能大幅提升工作效率。然而,目前仅限于特定操作系统,是其局限性。未来有望扩展更多功能和支持更多平台。
|
5天前
|
人工智能 弹性计算 API
创意“孵化机”——基于通义万相加速绘画创作流程
阿里云在2023年推出了AI绘画平台**通义万相**,该平台能够根据文本描述生成图像,应用于艺术创作。近期,阿里云优化了通义万相的接入方式,提供API文档和一键部署服务,使得非技术人员也能轻松集成到Web应用中。为促进用户尝试,阿里云还推出了解决方案评测活动,参与者有机会获得奖品。通义万相通过ECS、OSS、VPC和DashScope等云服务支持,简化了技术架构,加速了绘画创作流程。此外,阿里云提供了优惠购买方案,新人享有特别折扣。该服务不仅适用于艺术家,还可应用于多个领域,提高内容生成效率。
70689 15
|
8天前
|
人工智能 自然语言处理 算法
阿里云PAI大模型评测最佳实践
在大模型时代,模型评测是衡量性能、精选和优化模型的关键环节,对加快AI创新和实践至关重要。PAI大模型评测平台支持多样化的评测场景,如不同基础模型、微调版本和量化版本的对比分析。本文为您介绍针对于不同用户群体及对应数据集类型,如何实现更全面准确且具有针对性的模型评测,从而在AI领域可以更好地取得成就。
|
13天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!
|
13天前
|
机器学习/深度学习 算法 开发工具
通义千问2(Qwen2)大语言模型在PAI-QuickStart的微调、评测与部署实践
阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对Qwen2模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现Qwen2系列模型的微调、评测和快速部署。