完全背包使用一维数组
来源:互联网 发布:linux mint 安装kde 编辑:程序博客网 时间:2024/05/29 03:27
对于01背包和完全背包,无论是空间复杂度还是时间复杂度,最优的方法还是使用一维数组进行实现。
基于01背包的分析,由于不必考虑物品的重复放入,故v的循环采用顺序即可。代码如下:
#include
using namespace std;
int maxV[201];
int weight[11];
int value[11];
int V, N;
void main()
{
int i, j;
scanf("%d %d",&V, &N);
for(i = 0; i < N; ++i)
{
scanf("%d %d",&weight[i],&value[i]);
}
for(i = 0; i < N; ++i)
{
for(j = weight[i]; j <= V; ++j)
{
int tmp = maxV[j-weight[i]]+value[i];
maxV[j] = (maxV[j] > tmp) ? maxV[j] : tmp;
}
}
printf("%d",maxV[V]);
}
基于01背包的分析,由于不必考虑物品的重复放入,故v的循环采用顺序即可。代码如下:
#include
using namespace std;
int maxV[201];
int weight[11];
int value[11];
int V, N;
void main()
{
int i, j;
scanf("%d %d",&V, &N);
for(i = 0; i < N; ++i)
{
scanf("%d %d",&weight[i],&value[i]);
}
for(i = 0; i < N; ++i)
{
for(j = weight[i]; j <= V; ++j)
{
int tmp = maxV[j-weight[i]]+value[i];
maxV[j] = (maxV[j] > tmp) ? maxV[j] : tmp;
}
}
printf("%d",maxV[V]);
}
0 0
- 完全背包使用一维数组
- 完全背包使用一维数组
- 完全背包:一维数组
- hdu1114!完全背包!(一维数组)
- 完全背包(一维数组版)
- 01,完全 背包问题的一维数组
- 背包问题(01背包和完全背包)一维数组实现
- 0-1背包使用一维数组
- 如何用一维数组来解决01背包和完全背包问题?
- 背包 一维数组
- 01背包和完全背包 的完整讲解版 包含 一维数组实现 和二维数组实现题目
- 0-1背包和完全背包 的完整讲解版 包含 一维数组实现 和二维数组实现题目
- 完全背包:二维数组
- hdu 4508 一维完全背包
- 完全背包(包括二维,一维)
- 杭电1171(一维背包+完全背包)
- 一维01背包和完全背包对比代码
- 背包问题(一):完全背包
- 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法
- php json_encode 中文乱码的解决方法
- Oracle中的loop循环的例子
- 《深度探索C++对象模型》--4 Function语意学
- android源码包下载地址
- 完全背包使用一维数组
- const volatile, register volatile, static volatile in C++
- Nutch 笔记(一):Quick Start
- webkit关键代码浏览——HTML解析
- Linux内核kprobe机制
- 适用于 Ubuntu 11.04 的 10 个 AppIndicator
- javascript getElementsByClassName函数
- Building MFC application with /MD[d] (CRT dll version)requir...
- 分享一下CHtmlView指定IE内核版本崩溃问题及解决办法