这个背包问题 哪错了 求大神 5
#include<stdio.h>#defineMaxSize1002typedefstructpakeage{intcount;intv[MaxSize];inth[M...
#include <stdio.h>
#define MaxSize 1002
typedef struct pakeage
{
int count;
int v[MaxSize];
int h[MaxSize];
} Pake_age ;
Pake_age c;
typedef struct VALUE
{
int r;
int mv;
} Value;
Value m[MaxSize][MaxSize];
int x[MaxSize],count;
int max(int a,int b)
{
return a>b?a:b;
}
Value * pakeage_0_1(int W,int n)
{
int i,j,k,l;
for(i=0;i<=n;i++)
m[i][0].mv=0,m[i][0].r=0;
for(j=0;j<=W;j++)
m[0][j].mv=0,m[0][j].r=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=W;j++)
{
if(c.h[i]>j)
{
m[i][j].mv=m[i-1][j].mv;
}
else
{
k=m[i-1][j-c.h[i]].mv+c.v[i];
l=m[i-1][j].mv;
if(k>=l)
{
m[i][j].mv=k;
m[i][j].r=0;
m[i][j].r=m[i][j-c.h[i]].r+1;
}
else
{
m[i][j].mv=l;
m[i][j].r=0;
}
}
}
}
return &m[n][W];
}
int main()
{
int i,j,p,q,k,t,n;
Value *s;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d%d",&n,&k);
for(j=1;j<=n;j++)
{
scanf("%d%d",&c.v[j],&c.h[j]);
}
s=pakeage_0_1(k,n);
printf("%d %d\n",s->mv,s->r);
}
return 0;
}
台州2671 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2671 展开
#define MaxSize 1002
typedef struct pakeage
{
int count;
int v[MaxSize];
int h[MaxSize];
} Pake_age ;
Pake_age c;
typedef struct VALUE
{
int r;
int mv;
} Value;
Value m[MaxSize][MaxSize];
int x[MaxSize],count;
int max(int a,int b)
{
return a>b?a:b;
}
Value * pakeage_0_1(int W,int n)
{
int i,j,k,l;
for(i=0;i<=n;i++)
m[i][0].mv=0,m[i][0].r=0;
for(j=0;j<=W;j++)
m[0][j].mv=0,m[0][j].r=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=W;j++)
{
if(c.h[i]>j)
{
m[i][j].mv=m[i-1][j].mv;
}
else
{
k=m[i-1][j-c.h[i]].mv+c.v[i];
l=m[i-1][j].mv;
if(k>=l)
{
m[i][j].mv=k;
m[i][j].r=0;
m[i][j].r=m[i][j-c.h[i]].r+1;
}
else
{
m[i][j].mv=l;
m[i][j].r=0;
}
}
}
}
return &m[n][W];
}
int main()
{
int i,j,p,q,k,t,n;
Value *s;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d%d",&n,&k);
for(j=1;j<=n;j++)
{
scanf("%d%d",&c.v[j],&c.h[j]);
}
s=pakeage_0_1(k,n);
printf("%d %d\n",s->mv,s->r);
}
return 0;
}
台州2671 http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2671 展开
2个回答
展开全部
http://zhidao.baidu.com/question/215189868.html?oldq=1
这是我之前回答的, 看看对你有没有帮助
这是我之前回答的, 看看对你有没有帮助
更多追问追答
追问
在价值最大的前提下求背包内的最小物品个数c,中间用一个空格隔开。
能满足这个条件?》?
追答
拿数据试 不对不给分呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询