倍增
1.解释
如题,翻倍
优点:时间复杂度小
缺点:大多数情况下需要预处理,麻烦
2.步骤
1.翻倍
3.例题
题目:如何用尽可能少的砝码称量出 \([0,31]\) 之间的所有重量?
方法:每次使用\(2\)的倍数做砝码的重量就可以了
答案:\(5\) (\(1,2,4,8,16\))
4.技巧
这个真的只是一个思想,在很多高级算法(如\(LCA,RMQ\))中都有应用。
如题,翻倍
优点:时间复杂度小
缺点:大多数情况下需要预处理,麻烦
1.翻倍
题目:如何用尽可能少的砝码称量出 \([0,31]\) 之间的所有重量?
方法:每次使用\(2\)的倍数做砝码的重量就可以了
答案:\(5\) (\(1,2,4,8,16\))
这个真的只是一个思想,在很多高级算法(如\(LCA,RMQ\))中都有应用。