您的位置:首页 > 其它

pku百练 2727 0-1背包

2012-04-26 12:18 316 查看
d[ i ] [ j ]表示把第 i,i+1,i+2,。。。n个物品装到剩余容量为 j 的背包中的最大重量。

#include<stdio.h>
int v[105],w[105],d[105][1005];
int main()
{
int i,j,t,n;
scanf("%d%d",&t,&n);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i],&w[i]);
for(i=n;i>=1;i--)
for(j=0;j<=t;j++)
{
if(i==n) d[i][j]=0;//第i个物品不放时d[i][j]的值
else
d[i][j]=d[i+1][j];
if(j>=v[i])        / /第i个物品放时d[i][j]的值
if(d[i][j]<d[i+1][j-v[i]]+w[i])
d[i][j]=d[i+1][j-v[i]]+w[i];
}
printf("%d",d[1][t]);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: