题解 | 加速优化问题

加速优化问题

https://www.nowcoder.com/practice/ad2513f355b34374b09e028443c995b7

# 分组背包

def main(groups,L,T):
    global_min = float('inf')
    groups = [[(0,0)]] + groups
    def dfs(cur_i,cur_t,cur_c):
        # print(f"i:{cur_i},t:{cur_t},c:{cur_c},l:{len(groups)}")
        nonlocal global_min
        if cur_c > global_min:
            return
        if cur_t > T + 1e-9:
            return
        if cur_i == len(groups):
            # find solutions
            global_min = min(global_min,cur_c)
            return
        for t,c in groups[cur_i]:
            dfs(cur_i+1,cur_t+t,cur_c+c)
    dfs(0,0,0)
    return global_min
            

if __name__ == "__main__":
    line1 = input().split()
    L,T = int(line1[0]), float(line1[1])
    groups = []
    for _ in range(L):
        line = input().split()
        K = int(line[0])
        choices = []
        for i in range(K):
            t, c = float(line[i*3+2]), float(line[i*3+3])
            choices.append((t, c))
        groups.append(choices)
    res = main(groups,L,T)
    print(f"{res:.2f}")




全部评论

相关推荐

在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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