阅读背景:

函数参数有什么问题?

来源:互联网 
#include <iostream>
using namespace std;

template<class Type>
void Knapsack(Type *v,int *w,int c,int n,Type **m)
{
 int i,j;
    int jMax=max(w[n]-1,c);
    for(j=0;j<=jMax;j++)
    m[n][j]=0;
for(j=w[n];j<=c;j++)
    m[n][j]=v[n];
for(i=n-1;i>1;i--)
{
    for(j=0;j<=w[i]-1;j++)
        m[i][j]=m[i+1][j];
    for(j=w[i];j<=c;j++)
    {
        m[i][j]=max(m[i+1][j],m[i+1][j-w[i]]+v[i]);
    }
}
m[1][c]=m[2][c];
if(c>=w[1])
    m[1][c]=max(m[2][c],m[1][c-w[1]]+v[1]);

}

template <class Type>
void TrackBack(Type **m,int *w,int c,int n,int *x){
for(int i=1;i<=n;i++)
{
    if(m[i][c]==m[i+1][c])
        x[i]=0;
    else
        x[i]=1;
}
}

int main()
{
int m[101][101]={0};
int x[101];
int n=5;
int c=10;
int w[5]={2,2,6,5,4};
int v[5]={6,3,5,4,6};

Knapsack(v,w,c,n,m);


return 0;
}
#include <iostream>
using namespace std;

templ



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: