資源簡介
(算法)部分背包問題的求解,又需要可以下來看看……
代碼片段和文件信息
#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編寫
評論
共有 條評論