预处理
题目实际上和字母没关系。直接把字母转化成01234....即可。
设置状态
设状态 \(S\) 的第 \(i\) 位表示是否获取到了第 \(i\) 种状态(\(0无1有\)),则 \(S\) 最大只需要 \(15\) 位即可,空间上允许我们将其作为数组下标。
设 \(dp[S]\) 表示在到达状态 \(S\) 所需要的最小花费。初始值设为极大,对于已有调料状态设置为对应初始值即可。
对于每个状态,遍历所有调料,有:
\(dp[S | a[i]] = min(dp[S | a[i]], dp[S] + w_i)\)
最终答案即为 \(dp[2^n - 1]\)
标签:状态,初始值,饮料,调料,即可,调制,dp From: https://www.cnblogs.com/wondering-world/p/18104851