POJ 2976(二分搜索+最大化平均值)

传送门

•参考资料

  [1] : POJ 2976 Dropping tests 题解 《挑战程序设计竞赛》

  [2] : POJ 2976 3111(二分-最大化平均值)

•题意

  有 n 们课程,第 i 门课程的得分和总分分别为 ai 和 bi

  让你从中选出 n-k 门课程,使得 $100cdot frac{sum_{i=1}^{n}a_i}{sum_{i=1}^{n}b_i}$ 最大;

  结果要求四舍五入;

•题解

  二分答案;

  对于某一答案 x,判断是否可以选出 n-k 门课程,使得 $100cdot frac{sum_{i=1}^{n}a_i}{sum_{i=1}^{n}b_i} ge x$ 成立;

  上述式子可以进一步转化一下:

      $egin{aligned} 100cdot frac{sum_{i=1}^{n}a_i}{sum_{i=1}^{n}b_i} ge x &Leftrightarrow frac{sum_{i=1}^{n}a_i}{sum_{i=1}^{n}b_i} ge frac{x}{100}\ &Leftrightarrow sum_{i=1}^{n}a_i ge frac{x}{100}cdot sum_{i=1}^{n}b_i 
\ &Leftrightarrow sum_{i=1}^{n}(a_i - frac{x}{100}cdot b_i) ge 0end{aligned}$

  那么,我们只需每次按照 $a_i -  frac{x}{100}cdot b_i$ 排序取前 n-k 大并判断 x 是为否可行解即可;

•Code

  POJ2976.cpp

•有感而发

  太晚了,身心疲惫,如果明天有空的话,再写上自己对于此题的理解吧,真是个充实愉快的一天啊。

  对了,今天是我们学校70周年校庆,校庆再图书馆前的广场举行,声音震天响;

  听着外面的热闹声,在和我一个人奋斗相对比,心中难免有些没落,自己选择的ACM,再苦再难也要扛着。

  莫名地想到,下一个校庆,我会以何种身份出现在学校呢?

                                  2018.10.17  21:54

原文地址:https://www.cnblogs.com/violet-acmer/p/9807411.html