资源简介
(算法)部分背包问题的求解,又需要可以下来看看……
代码片段和文件信息
#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<<“取物品“<
- 上一篇:校园导航源代码
- 下一篇:超市管理系统(MFC编写
评论
共有 条评论