资源简介
01背包问题算法的C++实现。 knapsack.cpp + knapsack.h
代码片段和文件信息
#include “knapsack.h“
#include
#include
#include
#include
void knapsack(int v[]int w[] int cint n int**m)
{
int jmax = std::min(w[n]-1c);
for(int j=0;j<=jmax;j++)
m[n][j]=0;
for(int jj=w[n];jj<=c;jj++)
m[n][jj]=v[n];
for(int i=n-1;i>1;i--) // recursive O(nc)
{
jmax = std::min(w[i]-1 c);
for(int j = 0;j <= jmax;j++)
m[i][j] = m[i+1][j];
for(int jj = w[i];jj <= c; jj++)
m[i][jj] = std::max(m[i+1][jj] m[i+1][jj-w[i]]+v[i]);
}
m[1][c] = m[2][c];
if(c>=w[1])
m[1][c] = std::max(m[1][c] m[2][c-w[1]]+v[1]); // m[1][c] maximum value
}
void traceback(int **mint w[]int cint nint x[])
{
for(int i=1;i if(m[i][c]==m[i+1][c]) x[i]=0;
else {x[i]=1; c-=w[i];}
x[n]=(m[n][c])?1:0;
}
void printx( const int n const int c int* x int** m )
{
std::cout<<“最优解:“< for (int j = 1; j < n+1; j++)
{
std::
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 655 2011-08-27 09:13 knapsack.h
文件 1927 2011-10-31 21:18 knapsack.cpp
----------- --------- ---------- ----- ----
2582 2
- 上一篇:酒店管理系统C语言实现
- 下一篇:lz算法 C语言实现
相关资源
- picc8.05编译器+注册机完全版+PIC C语言
- vc++ MFC 背单词软件毕业设计系统源代
- msdn for vc++6.0
- GPS单点定位程序C++
- MIF 文件读取,简单的GIS系统,附带
- VC++2010番茄西红柿VAXvirsual assist X完美
- Essential C++ 中文版
- IC卡停车场管理系统源代码
- 消解原理实现有界面
- C++ 课程设计 大作业 背单词小软件
- VS2005下TCP网络编程,亲自调试成功w
- MFC__快捷菜单管理器
- MFC最小化至系统托盘源码
- C++C#互通DES加密算法
- OPCDA服务器与客户程序开发指南 书籍
- [MPI与OpenMP并行程序设计:C语言版].(
- C++ Qt设计模式第2版中文版
- 读取图片并显示的MFC程序
- MFC贪吃蛇完美运行
- Vc++编写的计算器简单小程序
- Programming -- Principles and Practice Using C
- 中国海洋大学C++课程期末资料
- The C++ Programming Language 4th Edition.pdf
- visual c++串口通信技术详解
- MFC实现TCP数据传输
- VC++ CLR编写带图形界面的简单计算器
- 测试驱动嵌入式C语言开发中英文合集
- vc++6.0 绿色版 完整版支持win7,win8系统
- 停车场管理系统 MFC 数据结构课程设计
- C#图解教程.pdf
评论
共有 条评论