01背包-回溯算法
来源:互联网 发布:佳能戴尔超六淘宝 编辑:程序博客网 时间:2024/05/22 15:42
01背包问题
背包容量:50
物品数量:3
n 1 2 3
重量 10 30 20
价值 60 120 100
回溯算法如下:
#define NUM 100int c; //背包容量int n; //物品数量int cw; //当前重量int cv; //当前价值int bestv; //当前最优价值struct Object{ int w; //重量 int v; //价值 double d; //单位重量价值比}Q[NUM]; //物品数组bool cmp(Object a, Object b){ if(a.d>=b.d)return true; else return false;}for (int i=0; in){bestv = cv;return;} //到达叶子结点,更新最优值 if(cw + Q[i].w<=c) //进入左子树搜索 { cw += Q[i].w; cv += Q[i].v; backtrack(i+1); cw -= Q[i].w; cv -= Q[i].v; } if(Bound (i+1)>bestv)backtrack(i+1); //进入右子树搜索}//限界函数Bound的实现int Bound(int i){ int cleft = c-cw; //背包剩余容量 int b = cv; //上界 while (i
阅读全文
0 0
- 01背包-回溯算法
- 回溯算法---01背包问题
- 01背包问题(回溯算法实现)
- 01背包问题(回溯算法实现)
- 回溯算法--背包问题
- 背包问题的回溯算法
- 回溯 01 背包
- 回溯法 01背包
- 01背包回溯法
- 回溯-01背包问题
- 【算法笔记】回溯法——01背包问题
- NOJ(1004)-回溯算法-01背包问题
- 回溯算法之0-1背包问题
- 背包问题 动态规划和回溯算法
- 回溯算法_01背包问题_Java实现
- 0-1背包问题:(回溯算法)
- 0-1背包问题:(回溯算法)
- 0-1背包问题(回溯算法)
- 进程间通信(IPC)之————共享内存
- 跨资源共享CORS详解
- 线程的控制与分离
- Java的Object类
- 线程的同步与互斥(死锁的产生和避免)
- 01背包-回溯算法
- 线程的同步与互斥(生产者与消费者模型)
- 信号量————生产者与消费者模型(环形缓冲区)
- 读写锁————用互斥量和条件变量模拟
- 自我实现一个简洁版的String类——1
- sql填坑
- 在一个每一行从左到右递增每一列从上到下递增的二维数组中查找一个整数是否存在——3
- 将一个字符串中的空格替换为指定的内容——4
- 输入一个链表的头结点,从尾到头反过来打印每个结点的值——5