博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
背包问题 动态规划
阅读量:6565 次
发布时间:2019-06-24

本文共 690 字,大约阅读时间需要 2 分钟。

问题简述

【题目描述】:

一个旅行者有一个最多能装M公斤的背包,现在有n件物品,他们的重量分别是W1,W2…Wn,

它们的价值分别是C1,C2……Cn,求旅行者能够获得的最大总价值。

【输入格式】:

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

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

【输出格式】:仅一行,一个数,表示最大总价值。

【输入样例#1】:

10 4

2 1
3 3
4 5
7 9

【输出样例#1】:12

 

构建表格

行为物品的数量 列为背包容量

代码如下

#include
using namespace std;#define max(x,y) x>y?x:yint bg[100][100]={
0};int main(){ int m,n; cin>>m>>n; for(int i=1;i<=n;i++){ int w,c; cin>>w>>c; for(int j=1;j<=m;j++){ if(w<=j) bg[i][j]=max(bg[i-1][j],bg[i-1][j-w]+c); else bg[i][j]=bg[i-1][j]; } } cout<

 

转载于:https://www.cnblogs.com/x-huihui/p/10560785.html

你可能感兴趣的文章
redhat5.8+mfs(提供软件包文档)
查看>>
python编写登录接口
查看>>
MySQL高可用方案之多级复制
查看>>
OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)
查看>>
Python火车票代码
查看>>
Android开发者指南(7) —— App Install Location
查看>>
Trafficserver Cluster模式
查看>>
亚马逊推出 Blox,用于 EC2 容器服务的开源工具集合
查看>>
Linux:在中国没有真正的新闻
查看>>
iOS推送功能极光推送的介绍与实现
查看>>
单用户模式与grub加密
查看>>
Chromium Graphics: 3D上下文及其虚拟化 - Part I
查看>>
jquery javascript获得网页的高度和宽度
查看>>
2019 -2-15 复习
查看>>
vim锁定屏幕
查看>>
实用的 JavaScript 调试小技巧
查看>>
027移除元素
查看>>
Linux下清理内存和Cache方法
查看>>
CodeVS 1018 单词接龙(DFS)
查看>>
我的博客园的CSS和html设置
查看>>