最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 混合背包

    正文概述 陈老师   2026-01-20 15:30:02  

    题目描述

    一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是 W1W2...,WnW_1,W_2,...,W_n ,它们的价值分别为 C1,C2,...,CnC_1,C_2,...,C_n 。有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包)。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。

    输入

    第一行:二个整数, MM (背包容量,M200M≤200 ), NN (物品数量,N30N≤30 );

    22 ~ N+1N+1 行:每行三个整数 Wi,Ci,PiW_i,C_i,P_i ,前两个整数分别表示每个物品的重量,价值,第三个整数若为 00 ,则说明此物品可以购买无数件,若为其他数字,则为此物品可购买的最多件数(Pi20P_i \le 20)。

    输出

    仅一行,一个数,表示最大总价值。

    样例

    10  3
    2  1  0
    3  3  1
    4  5  4
    
    11
    

    提示

    选第一件物品1件和第三件物品2件。

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 混合背包