为什么和01背包如此相似
查看原帖
为什么和01背包如此相似
1170071
Operation0701楼主2023/11/18 21:53

同样是二维数组,同样是判断和转移。不过这个用不了滚动数组优化,01背包可以优化。

有大佬能解释一下为什么和01背包这么相似吗,背后有什么相同的数学解释吗。

n,k = map(int,input().split())
dp = [[1]*(k+1) for _ in range(n+1)]
for x in range(1,n+1):
    for y in range(1,k+1):
        if y == 1:
            dp[x][y] = 1
        elif x < 2*y:
            dp[x][y] = dp[x-1][y-1]
        else:
            dp[x][y] = dp[x-1][y-1] + dp[x-y][y]
print(dp[-1][-1])
2023/11/18 21:53
加载中...