【题目描述】

一个旅行者有一个最多能装 M

公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn

,求旅行者能获得最大总价值。

【输入】

第一行:两个整数,M

(背包容量,M≤200)和N(物品数量,N≤30

);

第2..N+1

行:每行二个整数WiCi

,表示每个物品的重量和价值。

【输出】

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

【输入样例】

10 4
2 1
3 3
4 5
7 9

【输出样例】

12
// Created on 2020/2/16/*#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <climits>*/
#include <bits/stdc++.h>using namespace std;typedef long long ll;
const int idata=200+5;
int n,m;
int minn=INT_MAX,maxx=INT_MIN;
//int maps[idata][idata];
int sumfee[idata][idata];
int wigh[idata],valu[idata];int main()
{int i,v;cin>>m>>n;for(i=1;i<=n;i++)cin>>wigh[i]>>valu[i];for(i=1;i<=n;i++){for(v=m;v>0;v--){if(wigh[i]<=v)sumfee[i][v]=max(sumfee[i-1][v],sumfee[i-1][v-wigh[i]]+valu[i]);elsesumfee[i][v]=sumfee[i-1][v];}}cout<<sumfee[n][m]<<endl;return 0;
}

用一维数组:

// Created on 2020/2/18/*#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <climits>*/
#include <bits/stdc++.h>using namespace std;typedef long long ll;
const int idata=200+5;
int n,m;
int minn=INT_MAX,maxx=INT_MIN;
//int maps[idata][idata];
int sumfee[idata];
int wigh[idata],valu[idata];int main()
{int i,v;cin>>m>>n;for(i=1;i<=n;i++)cin>>wigh[i]>>valu[i];for(i=1;i<=n;i++){for(v=m;v>0;v--){if(wigh[i]<=v)sumfee[v]=max(sumfee[v],sumfee[v-wigh[i]]+valu[i]);elsesumfee[v]=sumfee[v];}}cout<<sumfee[m]<<endl;return 0;
}

1267:01背包问题相关推荐

  1. 1267:【例9.11】01背包问题

    1267:[例9.11]01背包问题 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 25333     通过数: 15193 [题目描述] 一个旅行者有一个最多能 ...

  2. 信息学奥赛一本通 1267:【例9.11】01背包问题

    [题目链接] ybt 1267:[例9.11]01背包问题 [题目考点] 1. 动态规划:背包问题 01背包问题 [解题思路] 01背包模板题 解法1:背包型动态规划 1. 状态定义 集合:将n件物品 ...

  3. 一本通 1267:【例9.11】01背包问题

    01背包问题 经典的01背包问题模板 这里提供两种做法: #include <iostream> #include <cstdio> using namespace std; ...

  4. ACM1881 01背包问题应用

    01背包问题动态规划应用 acm1881毕业bg 将必须离开的时间限制看作背包容量,先将他们由小到大排序,然后在排完序的数组中对每个实例都从它的时间限制开始(背包容量)到它的延长时间进行遍历: 1 # ...

  5. c语言-01背包问题

    01背包问题 问题:有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 分析: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选 ...

  6. 三十四、动态规划解决01背包问题

    一.动态规划算法介绍 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步一步获取最优解的处理算法. 动态规划算法与分治算法类似,其基本思想是将待求解的问题分解成若干个子问题,先求子问题, ...

  7. python 回溯法 子集树模板 系列 —— 3、0-1背包问题

    问题 给定N个物品和一个背包.物品i的重量是Wi,其价值位Vi ,背包的容量为C.问应该如何选择装入背包的物品,使得放入背包的物品的总价值为最大? 分析 显然,放入背包的物品,是N个物品的所有子集的其 ...

  8. poj3624 Charm Bracelet DP 01背包问题

    题目链接:http://poj.org/problem?id=3624 01背包问题,接触DP的第一题. 1 ///2014.4.10 2 ///poj3624 3 4 #include <io ...

  9. 【基础算法复习】01背包问题(一)

    一.绪论 01背包问题是一个经典的动态规划问题,问题描述为"有n个物品,其价值分别为v[n],要求将其装在承重为m的背包,每个物品只能装一次的情况下,在不超过承重的范围下价值最大" ...

  10. C++~回溯+贪心法解决01背包问题

    C++~回溯+贪心法解决01背包问题 参考文章: (1)C++~回溯+贪心法解决01背包问题 (2)https://www.cnblogs.com/rimochiko/p/8168638.html 备 ...

最新文章

  1. 面试官:你说熟悉MySQL,那来谈谈InnoDB怎么解决幻读的?
  2. 5G NR — 毫米波
  3. linux下find(文件查找)命令的用法总结
  4. 证书服务器无法启动,使用 SSL 证书后服务无法启动 - SQL Server | Microsoft Docs
  5. 最难忘的一节计算机课,最难忘的一节课作文五篇
  6. python远程同步文件_Python实现的远程文件自动打包并下载功能示例
  7. 算法案例之有效字母异位词
  8. 计算机领域有哪些常见的比赛
  9. wps怎么禁止云服务器,永久关闭WPS热点、云服务
  10. java实习收获与体会_java实习心得体会.doc
  11. 【3dmax千千问】初学3dmax插件神器第22课:3dmax效果图渲染进阶教程|VRAY相机为何要与VRAY灯光、VRAY材质、VRAY贴图等进行匹配呢?食住玩3dmax千千问教程
  12. linux温度监控软件,PSensor:Linux下硬件温度监控软件
  13. 「镁客·请讲」中科云创周北川:从数据到云端,我们要上下打通工业物联网产业链...
  14. 点击图片实现预览功能
  15. STM32cubemax的下载与配置
  16. Android中监听电源键长按、Home键、Home键长按
  17. 【JUC高并发编程】—— 再见JUC
  18. ajax提交,form表单提交,onsubmit=return checksubmit()提交验证
  19. php715 configure
  20. LoadRunner 12.02 进行录制脚本时提示无Internet访问

热门文章

  1. 微信公众号h5页面跳转小程序
  2. ubuntu1804进入安全模式
  3. 05.获取今天的日期
  4. PyQt5设置快捷键
  5. 思科瘦AP升级IOS
  6. JDK 11.0.2 的下载安装教程
  7. 练习:(bb)blog
  8. 合肥学院历届计算机对口招生真题,合肥学院2020年对口招生考试技能测试考试纲要...
  9. 相差400!OPPO、华为千元5G手机对比,谁的实力更硬核?
  10. 代码创建布局_自网站创建以来网站布局发生变化的9种方式