7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!

这篇具有很好参考价值的文章主要介绍了7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

输出格式:

输出装入背包中物品的最大总价值。

输入样例:

在这里给出一组输入。例如:

5 10

2 6

2 3

6 5

5 4

4 6

结尾无空行

输出样例:

在这里给出相应的输出。例如:

15

二:思路:

====================================================================

思路:关于如何判断是动态 规划,我个人的理解是

如果所求取的结果是(根据某种规则)跳跃性的挑选数据 那么可以判断为动态规划

本题思路来源 依然是 《算法图解》一书

将背包的容量从1开始展开(设为列),将物品按行展开(设为行),

用二维数组存储 不同容量下的最大价值,每一行只能算上本行和前面的行的物品,二维数组就是网格化的,将一个大问题分解成小问题,

那么其本质就是(递推方程)

:(规定容量的基础上)上一个单元格的最大价值 VS(当前商品的价值+

剩余容量所存储的价值)

三:来兄弟干了这杯代码

==========================================================================

/*

思路:关于如何判断是动态 规划,我个人的理解是

如果所求取的结果是(根据某种规则)跳跃性的挑选数据 那么可以判断为动态规划

本题思路来源 依然是 《算法图解》一书

将背包的容量从1开始展开(设为列),将物品按行展开(设为行),

用二维数组存储 不同容量下的最大价值,每一行只能算上本行和前面的行的物品

那么其本质就是(递推方程)

:(规定容量的基础上)上一个单元格的最大价值 VS(当前商品的价值+

剩余容量所存储的价值)

*/

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,c;

vectorv1,v2;//用v1来存重量,v2来存价值

cin >> n >> c;

int MaxVule[n+1][c+1];//物品件为行,背包容量为列(1,2,…c)

//将vector容器当中的0为位置占住(因为在二维数组中是从下标为1的开始的)

int a1 = 1,a2 = 2;

v1.push_back(a1);

v2.push_back(a2);

for(int i = 1; i <= n; i++){

int num1,num2;

cin >> num1 >> num2;

v1.push_back(num1);

v2.push_back(num2);

}

//二维数组初始化

for(int i = 0; i < n+1; i++){

for(int j = 0; j < c+1; j++){

MaxVule[i][j] = 0;

}

}

// for(int i = 1; i <= n; i++)

// cout << v1[i] << ’ ';

//创建的网格中开始更新数据

for(int i = 1; i < n+1; i++){

for(int j = 1; j < c+1; j++){

if(i == 1){

if(v1[i] <= j){

MaxVule[i][j] = v2[i];

}

}else{//比较上一个单元格的价值 如果比其大就更新

//计算本单元格的价值 = 商品的价值 + 剩余空间的价值

int value = j - v1[i];

if(value >= 0) {

int temp = v2[i] + MaxVule[i-1][value];//注意i-1 因为本行已经装进商品了不可重复装入

if(MaxVule[i-1][j] < temp){

MaxVule[i][j] = temp;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!,程序员,动态规划,算法

7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!,程序员,动态规划,算法

7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!,程序员,动态规划,算法

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!,程序员,动态规划,算法

最后

如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!,程序员,动态规划,算法

7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!,程序员,动态规划,算法

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
如果觉得本文对你有帮助的话,不妨给我点个赞,关注一下吧!

[外链图片转存中…(img-N1ib2wiv-1713303035192)]

[外链图片转存中…(img-DYfiLeUJ-1713303035192)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!文章来源地址https://www.toymoban.com/news/detail-856562.html

到了这里,关于7-6 0-1背包 (20 分)(思路加详解+网格做法+动态规划)Come Baby !!!!!!!!!!!!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 动态规划-----背包类问题(0-1背包与完全背包)详解

    目录 什么是背包问题? 动态规划问题的一般解决办法: 0-1背包问题: 0 - 1背包类问题  分割等和子集:  完全背包问题:  完全背包类问题 零钱兑换II: 背包问题(Knapsack problem)是一种组合优化的NP完全问题。 问题可以描述为:给定一组物品,每种物品都有自己的重量和价格

    2024年04月17日
    浏览(35)
  • 动态规划-背包问题详解

    首先给出背包的容量,接着: 01背包问题:给出每个物品的体积和质量,每个物品最多只能使用一次 完全背包问题:给出每个物品的体积和质量,每个物品可以无限次使用 多重背包问题:给出每个物品的体积、质量和数量,每个物品使用量必须在每个物品给定的数量之类 分

    2024年01月24日
    浏览(38)
  • 【动态规划】背包问题详解

    动态规划(Dynamic Pogramming,简称dp)是运筹学的一个分支,是求解决策过程最优化的数学方法。 背包问题 则是dp问题里很常见的一类。本篇文章来详解一下背包问题。 动态规划的理解方式有很多种,这里讲述的是yxc老师的闫氏dp法,个人认为是最好的理解方式并且非常好用。

    2024年02月06日
    浏览(45)
  • 动态规划详细讲解c++|经典例题讲解认识动态规划|0-1背包问题详解

    uu们,你们好!这次的分享是动态规划,其中介绍了动态规划的相关概念和做题模板(三要素),同时为了uu们对动态规划方法有更加形象的认识,特地找了两个经典问题,和大家一起分析。并且呢,为了大家检验自己的学习成果,我专门在常用的oj上为uu们找到了相关题目的

    2024年04月11日
    浏览(60)
  • 动态规划」详解背包问题及实践(附C++代码)

    背包问题是一个经典的组合优化问题,它可以被抽象为一个把物品放入背包中的过程,以求最终背包中物品价值的最大化。 常见的背包问题主要分为以下三种: 01背包问题:每种物品最多只能装一次。 完全背包问题:每种物品可以无限次装入背包中。 多重背包问题:每种物

    2024年02月04日
    浏览(49)
  • 背包问题算法全解析:动态规划和贪心算法详解

    计算机背包问题是动态规划算法中的经典问题。本文将从理论和实践两个方面深入探讨计算机背包问题,并通过实际案例分析,帮助读者更好地理解和应用该问题。 背包问题是一种经典的优化问题。有的时候我们需要将有一堆不同重量或者体积的物品放入背包,但是背包容量

    2024年02月09日
    浏览(49)
  • 动态规划(DP)---- 01背包入门详解----二维图是学会的关键

        动态规划,Dynamic Programing(简称DP),个人认为是一种 算法思想 , 用来解决多阶段多层次的选择问题,把一个复杂的问题分解成每个小块的子问题然后一个个解决来找到最优解。     DP适用 重叠子问题 和 最优子结构的性质 的问题。     DP问题范围分为 线性与非线性

    2024年02月03日
    浏览(40)
  • 动态规划详解(完结篇)——如何抽象出动态规划算法?以及解题思路

    今天直接开始讲解 FIRST:如何抽象出动态规划算法? 这个问题,困扰了无数代OIER,包括本蒟蒻 在比赛的时候,看一道题,怎么想到他是什么算法的呢? 这就需要抽象能力 而不同的算法,往往有着不同的特点 就来说说动态规划的题目特点 通过遍历,能够把所有的情况考虑到

    2023年04月08日
    浏览(41)
  • Java【动态规划】斐波那契数列模型, 图文思路详解 + 代码实现

    本篇总结动态规划中的 斐波那契数列模型 的解法和思路 按照以下流程进行分析题目和代码编写 思路分析步骤 代码编写步骤 1, 状态表示 1, 构造 dp 表 2, 状态转移方程 2, 初始化+边界处理 3, 初始化 3, 填表(抄状态转移方程) 4, 填表顺序 4, 返回结果 5, 返回值 / OJ链接 题目分析

    2024年02月08日
    浏览(60)
  • Dynamic-Programming(动态规划)最细解题思路+代码详解(1)

    案例二:二维数组的 DP 我做了几十道 DP 的算法题,可以说,80% 的题,都是要用二维数组的,所以下面的题主要以二维数组为主,当然有人可能会说,要用一维还是二维,我怎么知道?这个问题不大,接着往下看。 问题描述 一个机器人位于一个 m x n 网格的左上角 (起始点在

    2024年04月26日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包