测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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;
}

①处应填(    )

选项(单选)

上一题 下一题