#include<stdio.h>
int V[200][200];//前i个物品装入容量为j的背包中获得的最大价值
int max(int a,int b)
{
if(a>=b)
return a;
else return b;
}
int KnapSack(int n,int w[],int v[],int x[],int C)
{
int i,j;
for(i=0;i<=n;i++)
V[i][0]=0;
for(j=0;j<=C;j++)
V[0][j]=0;
for(i=0;i<=n-1;i++)
for(j=0;j<=C;j++)
if(j<w[i])
V[i][j]=V[i-1][j];
else
V[i][j]=max(V[i-1][j],V[i-1][j-w[i]]+v[i]);
j=C;
for(i=n-1;i>=0;i--)
{
if(V[i][j]>V[i-1][j])
{
x[i]=1;
j=j-w[i];
}
else
x[i]=0;
}
printf("选中的物品是:\n");
for(i=0;i<n;i++)
printf("%d ",x[i]);
printf("\n");
return V[n-1][C];
}
void main()
{
int s;//获得的最大价值
int w[15];//物品的重量
int v[15];//物品的价值
int x[15];//物品的选取状态
int n,i;
int C;//背包最大容量
n=5;
printf("请输入背包的最大容量:\n");
scanf("%d",&C);
printf("输入物品数:\n");
scanf("%d",&n);
printf("请分别输入物品的重量:\n");
for(i=0;i<n;i++)
scanf("%d",&w[i]);
printf("请分别输入物品的价值:\n");
for(i=0;i<n;i++)
scanf("%d",&v[i]);
s=KnapSack(n,w,v,x,C);
printf("最大物品价值为:\n");
printf("%d\n",s);
}

brilliam
- 粉丝: 3
最新资源
- 计算机视觉课程作业 2:CIFAR10 与 CIFAR100 数据集训练实践
- JavaScript核心编程与最佳实践
- Mathematica 在计算机视觉作业中表现超强碾压对手
- 计算机视觉作业2-训练cifar10和cifar100
- 这篇文章详细介绍了基于小波分析和时域介电谱的变压器油纸绝缘老化状态评估方法及其工程应用(论文复现含详细代码及解释)
- 【无人机通信】基于无人机通信的移动边缘计算任务迁移与资源分配算法研究:优化能耗与计算效率的系统设计(论文复现含详细代码及解释)
- 模式识别与计算机视觉课程第三次作业任务安排
- 这篇文章深入探讨了基于吸引力模型的轴-辐式集装箱海运网络优化问题,尤其关注在竞争环境下中小型海运公司的网络设计与优化策略(论文复现含详细代码及解释)
- 航空电子基于小波包变换及TRLMS抑制脉冲干扰的方法:GNSS接收机中脉冲干扰的有效抑制与信号恢复系统设计(论文复现含详细代码及解释)
- 【电力系统谐波检测】基于小波变换与分形理论的谐波检测方法研究:从理论到工程实践的全面解析(论文复现含详细代码及解释)
- 《模式识别与计算机视觉课程对应的第三次作业》
- 埃博拉酱所开发的计算机视觉工具箱
- 【电力设备检测】基于小波分析和时域介电谱的变压器油纸绝缘老化状态评估:特征提取与智能诊断系统设计(论文复现含详细代码及解释)
- 【雷达目标跟踪】基于新息自适应的扩展卡尔曼滤波算法优化:复杂环境下时变噪声鲁棒性提升系统设计(论文复现含详细代码及解释)
- 【电气化铁路供电系统】基于新型YNvd平衡变压器的同相供电系统设计与仿真:解决无功负序谐波及过分相问题(论文复现含详细代码及解释)
- ### 标题:【无人机系统控制】基于新型观测器的线性UAVs预设时间编队容错控制:分布式控制与故障处理(论文复现含详细代码及解释)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


