• 2024-04-05P8687 [蓝桥杯 2019 省 A] 糖果
    原题链接题解二进制表示每包糖果包含的味道,因为有一种拼接的感觉,然后背包dp,注意这里每个材料不止只能取一个code#include<bits/stdc++.h>usingnamespacestd;intdp[1<<22]={0},candy[105]={0};constintinf=2e9;intmain(){intn,m,k;cin>>n>>m>>k;
  • 2024-03-25P8687 [蓝桥杯 2019 省 A] 糖果
    题意:n个零食,每个零食有k种配料,一共有m种配料。问最少吃几包零食,可以吃到所有配料。n<=100,m<=20,k<=m。思路:最优化问题,如果n<=20可以直接bf,这里m<=20,对m进行状态压缩,正确的解法应该是线性dp+状态压缩。总结:很容易陷入一个哈密顿路径思路的误区中,在哈密顿路径中,一
  • 2024-02-10「杂题乱刷」P8687
    题目链接最典的状压dp了。直接枚举每个状态然后用01背包的方式做即可。时间复杂度\(O(n2^m)\)。代码:点击查看代码/*Tips:你数组开小了吗?你MLE了吗?你觉得是贪心,是不是该想想dp?一个小时没调出来,是不是该考虑换题?*/#include<bits/stdc++.h>usingnamespacestd;
  • 2024-02-01洛谷 P8687 [蓝桥杯 2019 省 A] 糖果
    题意有\(m\)种口味,每次\(k\)颗一袋出售,给你\(n\)包均为\(k\)颗的糖果,求最少买几袋可以吃到所有口味的糖果。思路暴力对\(n\)包糖果做组合。如果找到其中一种包含了所有口味,将所有满足的方案取糖果包数最小即可。时间复杂度\(\mathcal{O(2^n)}\)。正解考虑状