0-1背包问题使用回溯法

2023-10-30

对于0-1 背包问题可以用动态规划算法解决,这里先不说这种方法。

只介绍回溯法,0-1背包问题的回溯法解决的解空间是子集树。

下面给出最简洁的代码,比较方便理解呢

#include <iostream>
#include<stdio.h>
using namespace std;

int n,c,bestp;//物品的个数,背包的容量,最大价值

int p[10000],                   //物品的价值
w[10000],                   //物品的重量
x[10000],                   //x[i]暂存物品的选中情况
bestx[10000];               //物品的选中情况


void Backtrack(int i,int cp,int cw)
{
    //cw当前包内物品重量,cp当前包内物品价值
    int j;
    if(i>n)//回溯结束
    {
        if(cp>bestp)
        {
            bestp=cp;
            for(i=0; i<=n; i++) bestx[i]=x[i];
        }
    }
    else
        for(j=0; j<=1; j++)
        {
            x[i]=j;
            if(cw+x[i]*w[i]<=c)
            {
                cw+=w[i]*x[i];
                cp+=p[i]*x[i];
                Backtrack(i+1,cp,cw);
                cw-=w[i]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

0-1背包问题使用回溯法 的相关文章

  • Cesium开发基础 获取网上的3dtiles数据(仅做测试数据,不得商用)

    Cesium开发基础 获取网上的3dtiles数据 仅做测试数据 不得商用 本程序及利用本程序获得的资源严禁在网络上公开传播及用于商业用途 对于使用不当造成的法律后果 本程序的开发者 本文章的作者不承担任何连带责任 首先下载该程序 http
  • 应用SVM预测澳大利亚降雨(含数据预处理与调参)

    0 声明 本文主要内容来自视频 2020机器学习全集 菜菜的sklearn完整版 价值4999元的最全机器学习sklearn全集 赶紧收藏 哔哩哔哩 bilibili 课件来自 https pan baidu com s 1Xl4o0PMA
  • 操作系统——文件管理

    0 关注博主有更多知识 操作系统入门知识合集 目录 9 1文件系统概念 思考题 9 2文件的物理结构 思考题 9 3文件存储和目录 9 1文件系统概念 文件的定义 文件是计算机信息存取的一种重要组织形式 文件由若干信息项有序构成 信息项可以

随机推荐

  • html2pdf 一键生成pdf实践

    背景 项目中需要将查询的图表及表格一键生成pdf 便于运营查看操作 调研 经调研 目前社区有合适的插件实现 html2pdf js 该插件的实现原理就是将html内容获取 解析 用cavans画出来 生成图片 然后由图片生成pdf文件 使用
  • 子组件向父组件传值

    子组件 div style margin top 20px font size 14px span 已经拥有账户 span span span div
  • Qt 屏蔽qDebug 输出

    在pro 文件中定义 QT NO DEBUG OUTPUT 这个宏 就可以屏蔽qDebug 的输出了 DEFINES QT NO DEBUG OUTPUT 那么为什么定义这个宏就可以屏蔽qDebug 的输出呢 看qlogging h 中的定
  • origin设置不同区域的颜色_半分钟教程:关于 Origin 中 Error Bar,看这篇教程就够了...

    本教程转载自 Originlab 帮助中心 前 言 几年前 小编写过一篇关于 Error Bar 的小教程 Error Bar其实一点也不Error 文中介绍了 Error Bar 的基本使用方法 但还有一些内容没能介绍完全 比如如何添加不
  • layui 监听多选框(checkbox) 点击事件

    html代码
  • 关于MIPI协议(一)——物理层D-PHY总结

    关于MIPI协议 一 物理层D PHY总结 通读了一下MIPI物理层D PHY的规格书 拿掉了规格书中一些冗余繁复的部分 留下了一些比较重要的内容 现总结如下 规格书中前部分章节大篇幅论述了D PHY的几种内部实现结构 D PHY采用的是非
  • [Heat]Heat中资源的扩展与加载

    Heat的核心是stack 从某方面讲 heat就是围绕stack的生命周期在玩 stack又是由各种各样的资源组成的 heat除了自定义的大量资源外 还允许用户自定义自己需要的资源 提供了很强的扩展性 下面将简单分析heat资源加载的流程
  • Oracle---排序、分组、表连接

    文章目录 一 排序查询 二 分组查询 三 多表关联查询 表连接 1 内连接 2 外连接 3 自然连接 一 排序查询 使用ORDER BY子句排序 ASC 升序 默认情况下 DESC 降序 ORDER BY 子句在SELECT语句的结尾 例1
  • Mybatis Generator 逆向生成器

    一 首先 安装eclipse插件 Help Eclipser Marketplace中查找 Mybatis Generator 1 3 5安装 二 新建project New other 查找如下 点击next 选择你要将文件生成到哪里的项
  • avalon视频学习笔记(五)

    一 插入移除处理 1 绑定属性ms if a 当ms if的值为真 true 时 就将元素输出到页面里面 div div 根据条件显示内容 div div div div 根据条件显示内容 div div b 如果当ms if 的值为假 f
  • Pytorch c++ 部署报错解决方案

    目录 1 Only the versions between 2017 and 2019 inclusive are supported 2 Cannot find cuDNN library Turning the option off
  • Linux firewall(防火墙)相关命令

    1 检验防火墙是否启动 firewall cmd state 2 检查8080 端口是否启动 firewall cmd permanent zone public list ports 3 开启 8080 端口 firewall cmd z
  • 离群点检测算法python代码

    很高兴为您回答问题 在python中 可以使用以下几种方法实现离群点检测算法 Z score方法 该方法通过计算数据的Z score来识别离群点 您可以使用scipy库中的zscore函数来计算Z score IQR方法 该方法通过计算数据
  • 黄金矿工-Python

    首先做这个项目之前得清楚需要的材料和这个项目的结构 我自己感觉这个游戏项目的难点就在于钩子摆动的问题 它需要利用到三角函数来实现出来 我利用了pygame transform rotate 方法来实现钩字摇摆的问题 用sin和cos的方法来
  • ​Learun FrameWork 强大工作流引擎,让OA更智能

    互联网的发展促使企业在信息化的道路上不断探索 而随着企业信息化进程的不断深入 OA协同办公的概念也逐步进入大众的视野 OA的选型关乎企业的生存发展 除了需要重视 OA技术 OA品牌 OA产品 OA服务 四大要素之外 更重要的其实是让OA变得
  • Llama2下载流程与报错:download.sh: [[: not found Downloading LICENSE and Acceptable Usage Policy..

    最近Meta的新模型LlamaV2可谓是火出圈了 第一时间我也尝试下载了权重 下载Llama2需要首先取得许可 不过没有门槛 秒批 https ai meta com resources models and libraries llama
  • C++11的 thread多线程

    一 C 11的多线程类thread C 11之前 C 库中没有提供和线程相关的类或者接口 因此在编写多线程程序时 Windows上需要调用CreateThread创建线程 Linux下需要调用clone或者pthread create来创建
  • RocketMQ系列之集群搭建

    前言 上节我们对RocketMQ 以下简称RMQ 有了一些基本的认识 大致知道了 什么是RMQ以及他能做什么 今天我们来讲讲如何搭建RMQ 与其说搭建RMQ不如说是搭建RMQ集群 为什么这么说呢 看完这篇文章自然就懂了 RMQ几个重要角色
  • 蓝桥杯2022年第十三届决赛真题-小球称重

    目录 题目描述 输入格式 输出格式 样例输入 样例输出 提示 原题链接 代码思路 题目描述 小蓝有 N 个小球 编号 1 至 N 其中 N 1 是正品 重量相同 有 1 个是次品 重量比正品轻 为了找出次品 小蓝已经用天平进行了 M 次称重
  • 0-1背包问题使用回溯法

    对于0 1 背包问题可以用动态规划算法解决 这里先不说这种方法 只介绍回溯法 0 1背包问题的回溯法解决的解空间是子集树 下面给出最简洁的代码 比较方便理解呢 include