302006 - 货币面值

思路:

   其实这道题就是要我们求N个数能组成多少个不一样数值,然后找出不能组合的最小数值。
   求N个数能有多少个不一样数值其实就是个01背包,容量为N个数的和。N个数的值为物品的价值。对于每一个物品有两种选择,要么拿,要么不拿,如不拿就继承上一个状态,否则就上一个状态的dp的值加上当前物品的价值。
  然后把求出的数存在一个数组里,从小到大枚举,没在这个数组里出现的的第一个数就是最小数值。