资源简介
回溯法解决0-1背包问题
代码片段和文件信息
#include
#include
using namespace std;
#define MAX_NUM 200
int n = 0 W = 0;
int w[MAX_NUM] v[MAX_NUM];
int cw = 0 cp = 0;
int x[MAX_NUM] bestx[MAX_NUM];
int bestp = 0;
int sumw = 0 sumv = 0;
int bound(int i)
{
int rp = 0;
while (i <= n)
{
rp += v[i];
++i;
}
return cp + rp;
}
void backstrack(int t)
{
if (t > n)
{
for (int i = 1; i <= n; ++i)
{
bestx[i] = x[i];
}
bestp = cp;
return;
}
if (cw + w[t] <= W)
{
x[t] = 1;
cw += w[t];
cp += v[t];
backstrack(t + 1);
cw -= w[t];
cp -= v[t];
相关资源
- C++实战源码-小蛇长得快(入门级602)
- C++实战源码-文字水平滚动(入门级
- C++实战源码-替换指定的字符串(入门
- C++实战源码-小球称重(入门级046)
- C++实战源码-新同学的年龄(入门级
- C++实战源码-向数组中赋值(入门级
- C++实战源码-用#打印三角形(入门级
- C++实战源码-统计学生成绩分布(入门
- C++实战源码-向数组中插入元素(入门
- C++实战源码-用指向函数的指针比较大
- C++实战源码-用宏定义实现值互换(入
- C++实战源码-CD抓取(入门级574).zip
- C++实战源码-指定符号分割字符串(入
- C++实战源码-抓不住的兔子(入门级
- C++实战源码-用new动态创建结构体(入
- C++实战源码-将AVI动画分解成BMP位图(
- C++实战源码-修改可执行文件中的资源
- C++实战源码-指向结构体变量的指针(
- C++实战源码-将二维数组行列对换(入
- C++实战源码-应用random_shuffle算法将元
- C++实战源码-应用adjacent_find算法搜索相
- C++实战源码-数组中整数的判断(入门
- C++实战源码-获取数组中元素的个数(
- C++实战源码-将二维数组转换为一维数
- C++实战源码-迭代器的用法(入门级
- C++实战源码-二维数组行最大值中的最
- C++实战源码-输出数组元素(入门级
- C++实战源码-使用指针变量遍历二维数
- C++实战源码-数组中连续相等数的计数
- C++实战源码-计算字符串中有多少个单
评论
共有 条评论