?? beibao.cpp
字號(hào):
#include <iostream.h>
int w[6]={0,1,2,3,4,5};
int v[6]={0,1,2,3,4,5};
int c[6][11]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
void main ()
{
int i,j,aw(10);
cout<<"各個(gè)物品的重量為:";
for(i=1;i<6;i++)
cout<<w[i]<<',';
cout<<endl;
cout<<"各個(gè)物品的價(jià)值為:";
for(i=1;i<6;i++)
cout<<v[i]<<',';
cout<<endl<<endl;
void knapsack(int n,int aw);
knapsack(5,aw);
cout<<"二維表的內(nèi)容為:"<<endl;
for(i=1;i<6;i++)
{
for(j=0;j<=aw;j++)
cout<<c[i][j]<<',';
cout<<endl;
}
cout<<endl;
void output(int aw);
output(aw);
}
void knapsack(int n,int aw)
{
int i,j,m;
for(i=1;i<=n;i++)
{
c[i][0]=0;
for(m=1;m<=10;m++)
{
if(w[i]<=m)
{
j=c[i-1][m-w[i]]+v[i];
if(j>c[i-1][m])
c[i][m]=j;
else
c[i][m]=c[i-1][m];
}
else
c[i][m]=c[i-1][m];
}
}
}
void output(int aw)
{
int i,x[6];
for (i=5;i>1;i--)
{
if(c[i][aw]==c[i-1][aw])
x[i]=0;
else
{
x[i]=1;
aw=aw-w[i];
}
}
x[1]=c[1][aw]?1:0;
cout<<"物品的選擇情況為:"<<endl;
for(i=1;i<6;i++)
cout<<x[i];
cout<<endl;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -