状态压缩dp
状态压缩dp
- 将状态用二进制位表示并进行枚举
- 例:状态dp+01背包
- 糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1 ∼ M。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而是 K 颗一包整包出售。幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。
- 输入格式
- 第一行包含三个整数 N、M 和 K。接下来 N 行每行 K 这整数 T₁, T₂, · · · , TK,代表一包糖果口味。
- 输出格式
- 一个整数表示答案。如果小明无法品尝所有口味,输出 −1。
1 | import java.util.Scanner; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AFlyingSheep's Blog!
评论