题目
描述
输入输出示例
输入
3
输出
2
1 2
解法
- 对于m个待装袋的金币,取⌈m/2⌉⌈m/2⌉ 个金币装入第一个袋子,然后递归求解
证明
- 对于一个数m,采用每次分割一半的方法,共分割出⌊lg2m⌋+1⌊lg2m⌋+1 个袋子
- 按照题意,我们需要给出一个k个元素的序列,这个序列有2k2k 种选择元素的方法。每种选择法得出一个值。而因为需要能构造出所有可能的值,也就是要构造出[0,m][0,m] 内的所有值,共m+1个值,所以k≥⌈lg2(m+1)⌉k≥⌈lg2(m+1)⌉
- 对于m≥1m≥1,⌈lg2(m+1)⌉=⌊lg2m⌋+1⌈lg2(m+1)⌉=⌊lg2m⌋+1
- 所以我们的解法已经达到了最优