题解 | 购物单

购物单

https://www.nowcoder.com/practice/f9c6f980eeec43ef85be20755ddbeaf4?tpId=37&tqId=21239&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

from re import I
import sys
import random

n,m = sys.stdin.readline().strip().split()
n=int(n)
n //= 10 #优化运算
m=int(m)
worth={}
weight={}
annex={}
main_part={}
for index in range(1,m+1):
    worth[index],weight[index],annex[index] = sys.stdin.readline().strip().split()
    worth[index]=int(worth[index])
    worth[index] //= 10
    weight[index]=int(weight[index])    
    annex[index]=int(annex[index])
#print(annex)
for j in range(1,m+1):
    if annex[j] == 0:
        main_part[j]=annex[j]
        del annex[j]
attachments={}
for i in main_part.keys():
    attachments[i]=[]
    for j in annex.keys():
        if annex[j] == i:
            attachments[i].append((worth[j],weight[j]))

#print(attachments)

dp = [0] * (n + 1)
#选择主件
for  i in main_part.keys():
    #从后往前遍历,避免重复选择
    for j in range(n, worth[i] - 1, -1):
        dp[j] = max(dp[j], dp[j - worth[i]] + worth[i] * weight[i])
        #计算附件
        if len(attachments[i]) > 0:
            for av, ap in attachments[i]:
                if j >= worth[i] + av:
                    dp[j] = max(dp[j], dp[j - worth[i] - av] + worth[i] * weight[i] + av * ap)
            if len(attachments[i]) == 2:
                av1, ap1 = attachments[i][0]
                av2, ap2 = attachments[i][1]
                if j >= av1 + av2 + worth[i]:
                    dp[j] = max(dp[j], dp[j - worth[i] - av1 - av2] + worth[i] * weight[i] + av1 * ap1 + av2 * ap2)
 
print(dp[n]*10)


全部评论
点赞 回复 分享
发布于 06-01 18:26 重庆

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
点赞 评论 收藏
分享
05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务