N = 3 # 物品数量W = 10 # 限制重量weights = [3, 4, 5] # 重量values = [4, 5, 6] # 价值F = [[0 for i in range(0, W + 1)] for _ in range(N)] # N 行, W 列print("0\t", *list(range(0, W + 1)), sep="\t")for k in range(0, N):for c in range(0, W + 1):if weights[k] > c:F[k][c] = F[k - 1][c]continuev1 = F[k - 1][c - weights[k]] + values[k]v2 = F[k - 1][c]F[k][c] = max(v1, v2)print(f"{k+1}-{weights[k]}-{values[k]}", *F[k], sep="\t")print(F[N - 1][W - 1])
