动态规划: 用f[i][k]表示前i个包集齐k本书最少需要打开多少包。 f[i][k] = min(f[i-1]][k], f[i-1][k-a[i]]+1) 解释: 对于f[i][k]来说, 若第i个包不打开,则f[i][k]=f[i-1][k],表示前i-1个包集齐k本需要多少个包。 若第i个包打开,则f[i][k]=f[i-1][k-a[i]]+1,表示前i-1个包集齐k-a[i]本数需要多少个包,再加上第i个包。 至于具体第i个包打不打开,取决于哪种选择更小。
点赞 评论

相关推荐

牛客网
牛客企业服务