倒水
提交数: 424, 通过率: 51.89%, 平均分: 61.82
题目描述:
一天,树树买了N个容量可以认为是无限大的瓶子,初始时每个瓶子里有1升水。树树发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子合并,把一个瓶子的水全部倒进另一个瓶,然后把空瓶丢弃(不能丢弃有水的瓶子)。
显然在某些情况下树树无法达到目标,例如N=3,K=1。此时树树会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水),以达到目标。
现在树树想知道,最少需要买多少新瓶子才能达到目标呢?
输入格式:
一行两个正整数N,K(1≤N≤109,K≤1000)。
输出格式:
一个非负整数,表示最少需要买多少新瓶子。
样例输入:
3 1
样例输出:
1
提示:
对于30%数据,N≤3*105;
对于100%的数据如题目。
lowbit 的使用方法。
时间限制: 1000ms空间限制: 128MB