首页 > 其他分享 >烹饪料理

烹饪料理

时间:2023-12-04 22:32:19浏览次数:29  
标签:10 烹饪 attribute deep materials cookbooks limit 料理

勇者来到力扣城,城内设有烹饪锅供勇者制作料理,为自己恢复状态。
勇者背包内共有编号为 0 ~ 4 的五种食材,其中 materials[j] 表示第 j 种食材的数量。通过这些食材可以制作若干料理,cookbooks[i][j] 表示制作第 i 种料理需要第 j 种食材的数量,而 attribute[i] = [x,y] 表示第 i 道料理的美味度 x 和饱腹感 y。
在饱腹感不小于 limit 的情况下,返回勇者可获得的最大美味度。如果无法满足饱腹感要求,则返回 -1。

注意:每种料理只能制作一次。

示例 1:

输入:(依次输入materials、cookbooks、attribute、limit的值)
[3,2,4,1,2] 
[[1,1,0,1,2],[2,1,4,0,0],[3,2,4,1,0]] 
[[3,2],[2,4],[7,6]] 
5

输出:

7

解释: 食材数量可以满足以下两种方案: 方案一:制作料理 0 和料理 1,可获得饱腹感 2+4、美味度 3+2 方案二:仅制作料理 2, 可饱腹感为 6、美味度为 7 因此在满足饱腹感的要求下,可获得最高美味度 7

示例 2:

输入:(依次输入materials、cookbooks、attribute、limit的值)
[10,10,10,10,10] 
[[1,1,1,1,1],[3,3,3,3,3],[10,10,10,10,10]] 
[[5,5],[6,6],[10,10]] 
1

输出:

11

解释:通过制作料理 0 和 1,可满足饱腹感,并获得最高美味度 11

提示:

materials.length == 5
1 <= cookbooks.length == attribute.length <= 8
cookbooks[i].length == 5
attribute[i].length == 2
0 <= materials[i], cookbooks[i][j], attribute[i][j] <= 20
1 <= limit <= 100

def perfectMenu(materials, cookbooks, attribute, limit):
        def has_materials(materials):
            for material in materials:
                if material < 0:
                    return False
            return True
        
        def can_cookbooks(materials, cookbook):
            materials = [materials[i] - cookbook[i] for i in range(num_material)]
            return materials

        def back_trace(materials, x, y, deep):
            if y >= limit:
                ans.append(x)
            if deep < num_attribute:
                back_trace(materials[:], x, y, deep + 1)
                materials =  can_cookbooks(materials, cookbooks[deep])
                if has_materials(materials):
                    back_trace(materials[:], x+attribute[deep][0], y+attribute[deep][1], deep + 1)
        ans = [-1]
        num_attribute = len(attribute)
        num_material = len(materials)
        back_trace(materials, 0, 0, 0)
        return max(ans)
        
materials = eval(input())
cookbooks = eval(input())
attribute = eval(input())
limit = eval(input())
print(perfectMenu(materials, cookbooks, attribute, limit))

标签:10,烹饪,attribute,deep,materials,cookbooks,limit,料理
From: https://blog.51cto.com/lizhao/8681890

相关文章

  • 料理實踐記錄
    料理實踐記錄1甜品类1.1蛋糕1.1.1海绵蛋糕介绍:作为看家本领的六寸原味海绵蛋糕,可以作为各类复杂蛋糕的基底。若烤制成功,脱模后非常松软,按下回弹明显,趁温热切开切面细腻、碎屑较少(可以用小刀或蛋糕用锯)。一般可切成三片,加两层夹心仍可保持结构稳定。参考:【制作海绵蛋糕......
  • JOISC2019 ふたつの料理 / Two Dishes / 两道料理
    好题!考虑一个暴力DP:\(f(i,j)\)表示前\(i\)个\(A\),前\(j\)个\(B\),最大价值。将\(a,b\)前缀和。令\(A_i=S_i-a_i\),\(B_j\)同理,那么式子化成\(f(i,j)=\max\{f(......
  • 经营料理店铺要着手的方面,让店铺人气高涨
     近几年的料理店在市场上的发展可以用风靡市场四个字来形容,引起不少创业者的关注。但是要想成功地经营料理店铺,我们就要着手一些方面。下面铺先生为大家讲述经营料理店铺......
  • 阳澄湖大闸蟹的储存、烹饪与吃法
    这里以阳澄湖大闸蟹为例,为大家介绍下大闸蟹的烹饪技巧。##蟹的储藏我们采购的大闸蟹一般来源于市场或者网购寄送。-**市场蟹**,灵活好斗,一般分为散爬和捆扎两种形式。......
  • 如何用 React 烹饪 ‍ Docker。第 1 部分 - 基本理论和命令。
    怎么做饭‍码头工人与反应。第1部分-基本理论和命令。如果你可以创建一个容器——那就去做吧!Photoby伊恩·泰勒on不飞溅基础码头工人。为了什么?Docker......