• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: C/C++
  • 标签: 部分背包  

资源简介

(算法)部分背包问题的求解,又需要可以下来看看……

资源截图

代码片段和文件信息

#include 
using namespace std;

int* MaxValue(float *fint *vint *wint Wint n);
void Exchange(float &afloat &b);
void QuickSort(float *aint pint r);
int Partition(float *aint pint r);
 
int main()
{
int nW;
cout<<“请输入背包容量和物品个数:“;
cin>>W>>n;
cout<<“        物品序号:“;
for(int j=0;j cout< cout<<“\n请输入各物品重量:“;
int *w=new int[n+1];
for(int i=1;i<=n;i++)
cin>>w[i];
cout<<“请输入各物品价值:“;
int *v=new int[n+1];
for(i=1;i<=n;i++)
cin>>v[i];

int **c=new int*[n+1];
for(i=0;i<=n;i++)
c[i]=new int[W+1];
float *f=new float[n+1];
for(i=1;i<=n;i++)
{
f[i]=v[i]/w[i];
}
QuickSort(f1n);

int max=0;
int* ww=MaxValue(fvwWn); //ww[i]里存的是要选的物品的序号
cout<<“分别取:“<    for(i=1;ww[i+1]!=0;i++)  //注意最后一个,就是这里的i+1
{
cout<<“物品“< max+=v[ww[i]];
}
if(ww[0]!=0)
{
//i--;  //i在前面加1了,多个1,减去。
cout<<“取物品“<

评论

共有 条评论

相关资源