F. Honk's pool(二分答案)
•题意
有 n 个水塘,第 i 个水塘有 ai L 水;
最多有 k 次操作,每次操作都可以选择从水最多的水塘中取出 1L 水放入水最少的水塘中;
求最后水最多的水塘与水最少的水塘的差值的最小值;
•题解
二分答案;
定义 $sum=sum_{i=1}^{n}a_i$,那么最理想的情况就是所有池塘的水的容量都趋近于 $frac{sum}{n}$;
也就是说容量大于 $frac{sum}{n}$ 的水塘要尽可能多的进行取水操作,使得其可以趋近于 $lceil frac{sum}{n} ceil$;
容量小于 $frac{sum}{n}$ 的水塘要尽可能多的进行注水操作,使得其可以趋近于 $lfloorfrac{sum}{n} floor$;
求解 “水多的水塘最少有多少水” 和 “水少的水塘最多有多少水” 可以二分解决;
•Code