购买的魔法石要求能经受一定的压力,所以有必要测试出各种类型的魔法石能承受的最大压力值。测试方法很简单,就是把魔法石放在不同的压力环境下,如果魔法石在a压力下没有碎,却在a+1的压力下碎了,那么这种魔法石能承受的最大压力值为a。显然如果有足够多的同类型魔法石,我们可以用二分法用最少的次数测试出结果,但用于测试的魔法石数量有限,所以如何使用最优策略在最坏情况下所测试的次数最少呢?
输入包括多组数据,每组数据一行,包含两个正整数n,m(1≤n≤100,1≤m≤10),其中n表示测试的魔法石能承受的最大压力,m表示用于测试的同类型魔法石个数。
对于每一组输入,输出一个整数,表示使用最优策略在最坏情况下所需要的测试次数。
100 1 100 2
100 14
最优策略指在最坏情况下所需要的测试次数最少的策略。 如果只有一个魔法石,你只能从压力1开始测试,在最坏的情况下,需要测试100次。如果采用其他策略,你可能无法测出正确值(比如你第一次在压力2的情况下测试,结果魔法石碎了,这时你不能确定硬度是0还是1),即在最坏情况下你需要测试无限次,所以第一组数据的答案是100。