The Preliminary Contest for ICPC Asia Shenyang 2019
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} \rceil$;
容量小于 $\frac{sum}{n}$ 的水塘要尽可能多的进行注水操作,使得其可以趋近于 $\lfloor\frac{sum}{n} \rfloor$;
求解 “水多的水塘最少有多少水” 和 “水少的水塘最多有多少水” 可以二分解决;
•Code