A22570. 背包问题现有n件物品(编号为1,2,…,n),其中第i件物品的重量为w[i],价值为v[i]。现在让你从中选择若干件物品装进你的背包。背包的容量为 sta,要求你所选物品的总重量不能超过 sw。请计算你的背包能装物品价值总和的最大值。所有输入均为整数,数据范围限制:: 1≤n≤1θθ;1≤sw≤10∘:1≤wi≤sw:1≤v1≤1θ3试补全程序。#include< cstdio> #includ…
单选题
较易
知识点
题目描述
背包问题
现有n件物品(编号为1,2,…,n),其中第i件物品的重量为w[i],价值为v[i]。现在让你从中选择若干件物品装进你的背包。背包的容量为 sta,要求你所选物品的总重量不能超过 sw。请计算你的背包能装物品价值总和的最大值。
所有输入均为整数,数据范围限制:: 1≤n≤1θθ;1≤sw≤10∘:1≤wi≤sw:1≤v1≤1θ3试补全程序。
#include< cstdio>
#include< iostream>
#include< cstring>
using namespace std;
const int. N=110;
_____①_____;
int w[N],v[N];
int n, sw, sv=0;
int main(){
scanf("%d%d",&n,& sw);
for(int i=1;i<=n;i++) scanf("%d%d",&w[i],&v[i]), sv+=v[i];
memset(f,0x3f, sizeof(f));
_____②_____;
for(int i=1;i<=n;i++)
for(int j=0; _____③_____;j++){
f[i][j]=f[i-1][j];
if(v[i]<=j)f[1][j]= _____④_____ ;
}
int ans=0;
for(int i= sv;i>0;i--)
if(_____⑤_____){
ans=i;
break;
}
printf("%d\n", ans);
return e;
}①处应填( )
选项(单选)
答案解析
详细答案解析为会员权益,按每日次数查看。
开通 / 升级会员
上一题
下一题