背包问题1:【SSL】1059.01背包问题

题目:

一个旅行者有一个最多能用m公斤的背包,现在有n件物品,它们的重量分别是W1,W2,…,Wn,它们的价值分别为C1,C2,…,Cn.若每种物品只有一件求旅行者能获得最大总价值。

输入
第1行:两个整数,M(背包容量,M<=200)和N(物品数量,N<=30);

第2至N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。

输出
仅一行,一个数,表示最大总价值。

输入样例
10 4
2 1
3 3
4 5
7 9

输出样例
12

思路:

和装箱问题一样,这里的每个物品都只有2种选择,要么放,要么不放,所以就可以得到和装箱问题类似的结论,每次都递归下去,直到无法递归时,就判断当前这种方法得到的总价值是否比之前找到的最大价值大,然后返回,再试一下不放当前这个物品的方法,最后就可得到答案。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
struct beibao
{int jz,zl;
}a[50],s[50];void dg(int p,int zy,int sy,int dq)
{if(p>n){ans=max(ans,dq);return ;}if(dq+s[n].jz-s[p-1].jz<=ans)return ;if(sy>=a[p].zl)dg(p+1,zy+a[p].zl,sy-a[p].zl,dq+a[p].jz);dg(p+1,zy,sy,dq);
}
int main()
{ios::sync_with_stdio(false);cin>>m>>n;for(int i=1;i<=n;i++){cin>>a[i].zl>>a[i].jz;s[i].zl=s[i-1].zl+a[i].zl;s[i].jz=s[i-1].jz+a[i].jz;}dg(1,0,m,0);cout<<ans;return 0;
}

背包问题1:【SSL】1059.01背包问题——2021-03-10更相关推荐

  1. 01背包问题分支限界java_分支限界法-01背包问题

    1.分支限界法介绍 分支限界法类似于回溯法,也是在问题的解空间上搜索问题解的算法.一般情况下,分支限界法与回溯法的求解目标不同.回溯法的求解目标是找出解空间中满足约束条件的所有解:而分支限界法的求解目 ...

  2. c语言 用回溯算法解决01背包问题,回溯法解决01背包问题

    <回溯法解决01背包问题>由会员分享,可在线阅读,更多相关<回溯法解决01背包问题(21页珍藏版)>请在人人文库网上搜索. 1.回溯法解决01背包问题,回溯法解决01背包问题, ...

  3. python 回溯法 01背包问题_回溯法-01背包问题

    一.问题描述 给定 n 件物品,物品的重量为 w[i],物品的价值为 c[i].现挑选物品放入背包中,假定背包能承受的最大重量为 V,问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大 二 ...

  4. php解决01背包问题,PHP动态规划解决0-1背包问题实例分析_PHP教程

    //这是我根据动态规划原理写的 // max(opt(i-1,w),wi+opt(i-1,w-wi)) //背包可以装最大的重量 $w=15; //这里有四件物品,每件物品的重量 $dx=array( ...

  5. 【2021.03.10】段描述符与段选择子、GDT、LDT

    要点回顾 前文提到,当写入一个段寄存器的时候,只给了一个16位的数值,但是段寄存器有96位. 那么剩下的80位从哪里来的?这个16位的数值是随便写的吗? Windbg指令 指令 功能 r 查看寄存器 ...

  6. 01背包问题【回溯法求解】通俗易懂,适合小白

    本人此时还是一名研一的小菜鸡,刚学会了这个算法的基本概念,来总结一下,谁知道今后的我再看到这篇自己写的博客的时候会不会笑出来,哈哈哈哈哈哈哈哈,所以吗,错了的化大佬们评论指正就好了. 还有系列文章动态 ...

  7. 九种 0-1 背包问题详解

    目录 动态规划概念 问题1:0-1背包问题 问题2:完全背包问题 问题3:多重背包问题 问题4:混合背包问题 问题5:二维背包问题 问题6:分组背包问题 问题7:有依赖的背包问题 (困难) 问题8:背 ...

  8. c++ 多重背包状态转移方程_Python|动态规划关于0-1背包问题

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:算法与编程之美 前言 对学算法的同学来说,动态规划是其 ...

  9. 算法分析与设计(一)——0-1背包问题

    文章目录 1 三种背包问题详解 2 最值问题 1.1 0-1背包问题 1.2 零钱兑换 1.3 一和零 1.4 最后一块石头的重量 3. 恰好背包容量问题 4. 排列组合问题 4.1 目标和 4.2 ...

  10. 动态规划法(四)0-1背包问题(0-1 Knapsack Problem)

      继续讲故事~~   转眼我们的主人公丁丁就要离开自己的家乡,去大城市见世面了.这天晚上,妈妈正在耐心地帮丁丁收拾行李.家里有个最大能承受20kg的袋子,可是妈妈却有很多东西想装袋子里,已知行李的编 ...

最新文章

  1. 机器学习常用术语超全汇总
  2. java 默认参数_Java 方法的参数可以有默认值吗?
  3. 内联函数 —— C 中关键字 inline 用法解析
  4. 判断字符串是否为空--string.Empty、string=、s.length==0
  5. Codeforces Round #588 (Div. 1)
  6. android ukey,Tenorshare 4uKey for Android
  7. globk命令帮助信息
  8. 动态ip如何做域名解析
  9. 寻找两个正序数组的中位数
  10. C# CSV文件读写
  11. 大数据是什么?大数据可以做什么?大数据实际做了什么?大数据要怎么做?
  12. 关于引流脚本,你了解的引流脚本的优势有哪些?
  13. 关闭Delphi2010出现以下bpl错误,解决方案.
  14. 数据结构与算法A实验六图论---7-6 家庭房产(并查集)
  15. 1140 单位矩阵初始化
  16. 电子工程师的自我修养 - 单片机控制继电器
  17. 求集合的所有子集的算法
  18. 期货交易的主要特征(期货交易特征五大特征)
  19. 免费抢票 | 罗辑思维、京东、微信电影票核心产品大牛重磅开讲,产品经理第一课北京站强势来袭!...
  20. jira 查找issue_MySQL:更新JIRA里issue的创建和更新时间 | 学步园

热门文章

  1. 《Java核心技术 卷1》
  2. 中国传统节日端午节网页HTML代码 学生网页课程设计期末作业下载 春节大学生网页设计制作成品下载 DW春节节日网页作业代码下载
  3. Awvs 12.x安装教程及常见问题
  4. PreferenceActivity使用介绍
  5. 2021最新十大无码工具
  6. 2017百度之星程序设计大赛 总结
  7. 《“灯谜”系统--“定单”辅助产生系统》
  8. 泛微oa安装mysql,泛微OA系统安装升级重装手册(参考).doc
  9. nes模拟器java版_fc模拟器java版
  10. java的安装_java 安装步骤