#BZOJ1192

BZOJ1192 [HNOI2006]鬼谷子的钱袋 数学推理

   把一个数m拆成很多数字。  问至少拆成多少个数字,1~m中的所有数字才可以用这些数字的和表示。   这个让我马上想到了有限背包的一种做法。  其实是很像的。  算一算二进制位数就可以了。  具体拆成哪些数:比如x在二进制位数下有y位,那么就拆成:2^0,2^1,2^2,...,2^(y-2),...