传统的背包问题~3479:【例86.4】 混合背包

这篇具有很好参考价值的文章主要介绍了传统的背包问题~3479:【例86.4】 混合背包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【题目描述】

一个旅行者有一个最多能装V�公斤的背包,现在有n�件物品,它们的重量分别是W1�1,W2�2,...,Wn��,它们的价值分别为C1�1,C2�2...Cn��。有的物品只可以取一次(0101背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。

【输入】

第一行:二个整数,M�(背包容量,M≤200�≤200),N�(物品数量,N≤30�≤30);

第22..N+1�+1行:每行三个整数Wi��,Ci��,Pi��,前两个整数分别表示每个物品的重量,价值,第三个整数若为00,则说明此物品可以购买无数件,若为其他数字,则为此物品可购买的最多件数(P�)。

【输出】

仅一行,一个数,表示最大总价值。文章来源地址https://www.toymoban.com/news/detail-786282.html

【输入样例】

10  3
2  1  0
3  3  1
4  5  4

【输出样例】

11
#include<bits/stdc++.h>//gezhengxu2024
using namespace std;
int W,n;
int w[35],v[35],c[35];
int dp[205]; 
int main()
{
	cin>>W>>n;
	int i,j,k;
	for(i=1;i<=n;i++)
	{
		cin>>w[i]>>v[i]>>c[i];
		if(c[i]==0)
		{
			c[i]=99999;
		}
	}
	for(i=1;i<=n;i++)
	{
		for(j=W;j>=w[i];j--)
		{
			for(k=1;k<=min(j/w[i],c[i]);k++)
			{
				dp[j]=max(dp[j],dp[j-k*w[i]]+k*v[i]);//gezhengxu2024
			}
		}
	}
	cout<<dp[W];
	return 0;
}

到了这里,关于传统的背包问题~3479:【例86.4】 混合背包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MSVS C# Matlab的混合编程系列1 - 看似简单的问题引出

    问题提出,如何把Matlab(本文简称MT)的算法集成到Visual Studio(本文简称VS)里面运行? 本文,通过编制一个MT中最简单的加法函数,我们把他做成 MSVS C#能够使用的动态库,说明了MSVS C# 和 MT集成的最小,然而,最简洁清晰的处理方法和过程。  1 VS2019 2 C# .Net 应用环境 3 MT2019 指的

    2024年01月21日
    浏览(36)
  • qt matlab 混合编程

    matlab 2021a qt 5.12.10 qt creator 4.13.1 opencv 4.3.0 eigen-3.4.0/eigen-3.4.0 以 aberr_analy1 的导出 dill 举例 命令行中输入:deploytool 2. 选择LIbrarycompiler 3type 选择c++ 4,选择相应的 5. 点击package  选择保存的路径即可 6.导出后: 只需要 下面这个文件里面的dll .h 和。Lib 文件 1.opencv +eigen-3.4.0+matlab

    2024年02月07日
    浏览(45)
  • qt&python混合编程

    参考:Qt调用Python详细过程_贝勒里恩的博客-CSDN博客_qt python 1.环境搭建 1.1.python3.6 32bits 1.2.qt5.12.12 32bits 说明: (1). 务必保持版本位数一致,没有一致就得重新下载一致的版本 (2).以上软件环境的下载和安装,请自行百度,资料很多,在此重点说说混合编程遇到的错误如何解决. (3).请装

    2024年02月06日
    浏览(56)
  • 混合编程python与C++

    上个版本: 只是用到ctypes进行传输, 这次将python服务端更改为C++服务端,方便后续维护. 本文实现功能: python传输图片给C++, C++接受图片后对图片进行处理,并将结果返回给python客户端, pass image from python to C++ 注意文中的model 部分有删减,createJson可参考使用,利用json来传递值 其实这个

    2024年02月08日
    浏览(41)
  • C++和QML混合编程

    Qt元对象系统中注册C++类,在QML中实例化、访问。 C++中实例化并设置为QML上下文属性,在QML中直接使用。            比较: 方法1 可以使C++类在QML中作为一个数据类型,例如函数参数类型或属性类型,也可以使用其枚举类型、单例等,功能更强大。 派生自QObject类或QObject类

    2024年02月04日
    浏览(42)
  • C++和 C 混合编程处理

            原因是因为有很多功能是用 C 语言开发的,而 C++是兼容 C 的,C++应该能直接使用这些功能,那么我们把 C++调用 C 实现的功能的这个做法,称为混合编程         但是用 C 开发的功能,很可能已经用 C 编译器编程成目标文件(或打包成库了),那么目标文件中的函

    2024年02月05日
    浏览(92)
  • C++(Qt)与Python混合编程

    文章开头,请大家注意一点: 开始搭配环境之前,请大家完成对自己电脑位数的查看【32位/64位】 本篇博客适用于windows64位版本安装。当然了,32位的友友也可以对照着配置! 本篇教程所用环境如下: windows11(64位) Qt 6.4 Python 3.8.6 【由于本人已安装python版本为3.8.6,不想重

    2024年01月24日
    浏览(38)
  • x86平台SIMD编程入门(2):通用指令

    虽然128位的XMM寄存器在硬件上只是256位YMM寄存器的下半部分,但在C++中它们是不同的类型。有一些intrinsic函数可以将它们重新解释为不同的类型,如下表所示,行代表源类型,列代表目标类型。 __m128 __m128d __m128i __m256 __m256d __m256d __m128 = _mm_castps_pd _mm_castps_si128 _mm256_castps128_p

    2024年02月06日
    浏览(42)
  • x86平台SIMD编程入门(3):浮点指令

    算术类型 函数示例 备注 加 _mm_add_sd 、 _mm256_add_ps 减 _mm_sub_sd 、 _mm256_sub_ps 乘 _mm_mul_sd 、 _mm256_mul_ps 除 _mm_div_sd 、 _mm256_div_ps 平方根 _mm_sqrt_sd 、 _mm256_sqrt_ps 倒数 _mm_rcp_ss 、 _mm_rcp_ps 、 _mm256_rcp_ps 快速计算32位浮点数的近似倒数(1/x),最大相对误差小于 (1.5times 2^{-12}) 。 倒数

    2024年02月06日
    浏览(40)
  • 背包问题——01背包|完全背包

    目录 前言背包问题的历史  01背包  1、题目 2、暴力解01背包  Ⅰ、代码 3、动态规划解01背包 Ⅰ、二维dp数组解01背包 1)dp数组的含义  2)递推公式  3)dp数组的初始化  4)遍历顺序的讨论  5、代码  Ⅱ、一维数组解01背包  1)一维数组|滚动数组  2)一维数组的含义及递

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包