news 2026/9/14 18:09:13

背包问题~~!C++

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
背包问题~~!C++

5 10 //5代表5件物品 10代表 取这5件物品种 哪几样 可以加起来为10
1 2 3 4 5

//第1件物品重量1
//第2件物品重量2
//第3件物品重量3
//第4件物品重量4
//第5件物品重量5

现在我们想,我们有一个布袋,初始状态里面是空的,意味着哪几方面信息?
第一, 重量为0
第二, 物品个数为0
第三, 总重量不等于10

以上状态我们用0来表示

接下来我们分析我们对第一个物品可以做的事,就是把他放进布袋,或不放进布袋
那们结合前面的0状态,再加上第一个物品的两个状态就可以看到以下情况:

0 0 1 0代表不取 1代表取

如果这看明白了,在对一个物品处理之后,就是处理第二个物品

是不是:

0

0 1
0 1 0 1
同样第三个,第四个也是这原理

0

0 1
0 1 0 1
0 1 0 1 0 1 0 1

如果以上能理解了,就应当有递归的感觉了
题目要求:找到一组解即可。说明会有很多情况其实是可以满足要求的:
比如上面的案例: 1234为10 145为10 235为10
接下来用代码写函数

510//5代表5件物品 10代表 取这5件物品种 哪几样 可以加起来为1012345//第1件物品重量1//第2件物品重量2//第3件物品重量3//第4件物品重量4//第5件物品重量5现在我们想,我们有一个布袋,初始状态里面是空的,意味着哪几方面信息? 第一, 重量为0第二, 物品个数为0第三, 总重量不等于10以上状态我们用0来表示 接下来我们分析我们对第一个物品可以做的事,就是把他放进布袋,或不放进布袋 那们结合前面的0状态,再加上第一个物品的两个状态就可以看到以下情况:0010代表不取1代表取 如果这看明白了,在对一个物品处理之后,就是处理第二个物品 是不是:0010101同样第三个,第四个也是这原理001010101010101.....如果以上能理解了,就应当有递归的感觉了 题目要求:找到一组解即可。说明会有很多情况其实是可以满足要求的: 比如上面的案例:1234101451023510接下来用代码写函数#include<iostream>usingnamespacestd;typedefstruct{intindex;intvalue;}Data;inta[10000],s,n;Data data[10000];intsize;boolcheck(intSumweigth,intcnt){if(cnt==-1)returnSumweigth==s;//如没有可选,返回布袋与要求的是否一致elseif(check(Sumweigth+a[cnt],cnt-1)){//当前位置放入布袋继续分析data[size].index=cnt;data[size].value=a[cnt];size++;returntrue;}elseif(check(Sumweigth,cnt-1)){//当前位置没进包里,继续分析returntrue;}returnfalse;}voidprint(){for(inti=0;i<size;i++)cout<<"number:"<<data[i].index+1<<" weight:"<<data[i].value<<endl;//index+1 因为下标是从0开始的}voidsolve(){cin>>n>>s;for(inti=0;i<n;i++)cin>>a[i];if(check(0,n-1))print();elsecout<<"not found"<<endl;}intmain(){solve();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 1:47:40

21、Nagios Core 安全与性能优化指南

Nagios Core 安全与性能优化指南 一、CGI 访问控制 在配置 Apache 时,我们可以通过以下配置来严格控制对 CGI 的访问: Require valid-user Order Allow,Deny Deny from all Allow from 127.0.0.0/16 Allow from 10.128.0.1 </Directory>上述配置仅允许本地地址和 …

作者头像 李华
网站建设 2026/9/13 3:32:01

ESP-HI机器狗完整教程:从零搭建你的百元级AI伙伴

ESP-HI机器狗完整教程&#xff1a;从零搭建你的百元级AI伙伴 【免费下载链接】xiaozhi-esp32 Build your own AI friend 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 还在为传统机器狗动辄数千元的高昂成本而望而却步吗&#xff1f;还在为复杂的运…

作者头像 李华
网站建设 2026/9/13 22:36:11

SM3算法PHP实现实战指南:从零精通国产加密技术

在当今信息安全日益重要的时代&#xff0c;国产密码算法SM3凭借其卓越的安全性能和广泛的应用前景&#xff0c;正在成为PHP开发者必须掌握的关键技术。本文将带领你从基础概念到实战应用&#xff0c;全面掌握SM3算法的PHP实现。 【免费下载链接】SM3-PHP 国密标准SM3的PHP实现 …

作者头像 李华
网站建设 2026/9/14 19:26:36

Verible完整指南:SystemVerilog开发的5大核心利器

Verible完整指南&#xff1a;SystemVerilog开发的5大核心利器 【免费下载链接】verible Verible is a suite of SystemVerilog developer tools, including a parser, style-linter, formatter and language server 项目地址: https://gitcode.com/gh_mirrors/ve/verible …

作者头像 李华
网站建设 2026/9/14 1:56:28

Android设备唯一标识终极指南:快速获取合规OAID的完整教程

Android设备唯一标识终极指南&#xff1a;快速获取合规OAID的完整教程 【免费下载链接】Android_CN_OAID 安卓设备唯一标识解决方案&#xff0c;可替代移动安全联盟&#xff08;MSA&#xff09;统一 SDK 闭源方案。包括国内手机厂商的开放匿名标识&#xff08;OAID&#xff09;…

作者头像 李华
网站建设 2026/9/13 10:10:42

WechatHook完整指南:掌握微信自动化开发终极方案

WechatHook是一个基于模块化框架和Android辅助功能技术的开源项目&#xff0c;为开发者提供了强大的微信自动化控制能力。通过深度定制微信功能&#xff0c;该项目实现了智能回复、位置修改、自动操作等多种实用功能&#xff0c;为微信生态开发提供了丰富的技术参考。 【免费下…

作者头像 李华