编程语言
首页 > 编程语言> > 阿良的算法之路(动态规划之分组背包问题)

阿良的算法之路(动态规划之分组背包问题)

作者:互联网

题目描述

参考题解

if __name__ == "__main__":
    N, V = map(int, input().split())
    v = []
    w = []
    s = []
    dp = [0] * (V + 1)
    for i in range(N):
        s.append(int(input()))
        tv = []
        tw = []
        for j in range(s[i]):
            a, b = map(int, input().split())
            tv.append(a)
            tw.append(b)
        v.append(tv)
        w.append(tw)
        
    for i in range(N):
        for j in range(V, 0- 1, -1):
            for k in range(s[i]):
                if j >= v[i][k]:
                    dp[j] = max(dp[j],dp[j-v[i][k]]+w[i][k])
    print(dp[V])

标签:__,背包,int,阿良,tv,range,分组,append,dp
来源: https://blog.csdn.net/qq_51831335/article/details/121302308