酷代码 AI
菜单
服务商

def knapsack(n, g, w, v): dp = [[0] * (g + 1) for _ in range(n + 1)] for i in range(1, n + 1): for j in range(1, g + 1): if w[i - 1] <= j: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i - 1]] + v[i - 1]) else: dp[i][j] = dp[i - 1][j] max_value = dp[n][g] def backtrack(i, j, path, current_value): if i == 0 or j == 0: if current_value == max_value: s

path.append(s) return path if dp[i][j] == dp[i - 1][j]: return backtrack(i - 1, j, path, current_value) path.append(i - 1) return backtrack(i - 1, j - w[i - 1], path, current_value - v[i - 1]) return backtrack(n, g, [], max_value) [2024-06-09 19:21:11 | AI写代码神器 | 191点数解答]

相关提问
请收藏新域名:pdcd.cn
发财导航,免费问AI
实用工具查看更多
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]
数独游戏 [娱乐类]
经典推箱子 [娱乐类]
AI摸鱼五子棋 [娱乐类]