题目等价于:现在有一个体积为 QQQ 的背包,有 NNN 个物品,第 iii 个物品的体积为 aia_iai 有无限个。要求在这 NNN 个物品中取恰好 KKK 个物品,背包能装下的方案有多少种,答案对 PPP 取模。
dp[i][j][k]dp[i][j][k]dp[i][j][k] 表示前 iii 个物品,恰好取 jjj 个取到体积为 kkk 的方案数。
完全背包板子:dp[i][j][k]=dp[i][j][k]+dp[i][j−1][k−a[i]]dp[i][j][k]=dp[i][j][k]+dp[i][j-1][k-a[i]]dp[i][j][k]=dp[i][j][k]+dp[i][j−1][k−a[i]]
状态压缩一下,时间复杂度 O(N×K×Q)O(N \times K \times Q)O(N×K×Q)
注册一个 TeMenHu 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 TeMenHu 通用账户