原神哪些是五星角色 原神哪些五星角色可以当主c

原神哪些是五星角色 原神哪些五星角色可以当主c

下面内容是使用Python实现0 &8211; 1背包难题的示例代码:

def knapsack(capacity, weights, values):
n = len(weights)
dp = [[0 for _ in range(capacity + 1)] for _ in range(n + 1)]

for i in range(1, n + 1):
for w in range(1, capacity + 1):
if weights[i - 1] <= w:
dp[i][w] = max(values[i - 1] + dp[i - 1][w - weights[i - 1]], dp[i - 1][w])
else:
dp[i][w] = dp[i - 1][w]
return dp[n][capacity]

测试示例
values = [60, 100, 120]
weights = [10, 20, 30]
capacity = 50
print(knapsack(capacity, weights, values))

在上述代码中:

  1. 创建动态规划数组
    • 开头来说创建了一个二维数组 dp,其中 dp[i][j] 表示在前 i 个物品中,背包容量为 j 时的最大价格。
  2. 填充动态规划数组
    • 对于每个物品 i(从1到 nn 是物品的总数)和每个容量 w(从1到总容量 capacity):
      • 如果当前物品的重量 weights[i - 1] 小于等于当前容量 w,则需要考虑选择当前物品和不选择当前物品两种情况,取价格较大者。
      • 如果当前物品的重量大于当前容量,则不能选择当前物品,dp[i][w] 的值等于 dp[i - 1][w]
  3. 返回结局
    • 最终返回 dp[n][capacity],即所有物品考虑完后,背包容量为 capacity 时的最大价格。
版权声明

返回顶部