题干解析 题设给予我们6种砝码,分别个,要求我们返回这些砝码能够组成的总重种数。 算法思路 本题可以进行一些转化,我们设定我们有一个承重为i的背包,设定状态值dp[i]表示装满这个背包的方案数。由此我们能够将整个问题转化为求dp数组,最后统计dp数组种的非零值的个数然后输出即为答案。 通过以上转化,我们将问题转化为一个背包DP问题。理论上本题数据量不大,能够直接转化为0/1背包进行求解,以下内容为对其进行二进制优化后的解法,通过将总数进行二进制拆分,优化时间复杂度。 实现代码 #include <bits/stdc++.h> using namespace std; int mai...