动态规划_多重背包理论基础

Sub d27_动态规划_多重背包理论基础()
    Dim weight, value, nums, bagWeight
    weight = Array(1, 3, 4)
    value = Array(15, 20, 30)
    nums = Array(2, 3, 3)
    bagWeight = 10
    Dim dp
    ReDim dp(bagWeight)
    For i = 0 To UBound(weight)
        For j = bagWeight To weight(i) Step -1
            For k = 1 To nums(i)
                If j - k * weight(i) >= 0 Then
                    dp(j) = Application.Max(dp(j), dp(j - k * weight(i)) + k * (value(i)))
                End If
            Next
        Next
    Next
    For x = 0 To UBound(dp)
        res = res & " , " & dp(x)
    Next
    Debug.Print (Mid(res, 7))
End Sub

 

posted @ 2022-12-04 15:15  依云科技  阅读(31)  评论(0)    收藏  举报