传送门

•参考资料

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

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

•题意

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

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

  结果要求四舍五入;

•题解

  二分答案;

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

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

      $\begin{aligned} 100\cdot \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 0\end{aligned}$

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

•Code

  POJ2976.cpp

•有感而发

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

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

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

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

                                  2018.10.17  21:54

poj 2976(二分搜索+最大化平均值)的更多相关文章

  1. 二分算法的应用——最大化平均值 POJ 2976 Dropping tests

    最大化平均值 有n个物品的重量和价值分别wi 和 vi.从中选出 k 个物品使得 单位重量 的价值最大. 限制条件: <= k <= n <= ^ <= w_i <= v ...

  2. POJ 2976 3111(二分-最大化平均值)

    POJ 2976 题意 给n组数据ai,bi,定义累计平均值为: 现给出一个整数k,要求从这n个数中去掉k个数后,最大累计平均值能有多大?(四舍五入到整数) 思路 取n−k个数,使得累计平均值最大. ...

  3. POJ 2976 Dropping tests (最大化平均值)

    题目链接:click here~~ [题目大意]给你n个分数的值,要求最小不选k个,使得最后分数相加结果平均值最大 [解题思路]:最大化平均值:參见:click here~~ 代码: #include ...

  4. POJ:2976 Dropping tests(二分+最大化平均值)

    Description In a certain course, you take n tests. If you get ai out of bi questions correct on test ...

  5. POJ 2976 Dropping tests【二分 最大化平均值】

    题意:定义最大平均分为 (a1+a2+a3+---+an)/(b1+b2+---+bn),求任意去除k场考试的最大平均成绩 和挑战程序设计上面的最大化平均值的例子一样 判断是否存在x满足条件 (a1+ ...

  6. POJ - 2976 Dropping tests(01分数规划---二分(最大化平均值))

    题意:有n组ai和bi,要求去掉k组,使下式值最大. 分析: 1.此题是典型的01分数规划. 01分数规划:给定两个数组,a[i]表示选取i的可以得到的价值,b[i]表示选取i的代价.x[i]=1代表 ...

  7. poj 3111 K Best 最大化平均值 二分思想

    poj 3111 K Best 最大化平均值 二分思想 题目链接: http://poj.org/problem?id=3111 思路: 挑战程序竞赛书上讲的很好,下面的解释也基本来源于此书 设定条件 ...

  8. POJ 3111 K Best(最大化平均值)

    题目链接:click here~~ [题目大意]有n个物品的重量和价值各自是Wi和Vi.从中选出K个物品使得单位重量的价值最大,输出物品的编号 [解题思路]:最大化平均值的经典.參见click her ...

  9. POJ 3111 K Best 最大化平均值 [二分]

    1.题意:给一共N个物品,每个物品有重量W,价值V,要你选出K个出来,使得他们的平均单位重量的价值最高 2.分析:题意为最大化平均值问题,由于每个物品的重量不同所以无法直接按单位价值贪心,但是目标值有 ...

随机推荐

  1. 递归拼装Tree结构数据

    @Override public List<Map<String, Object>> queryListTree() { List<Map<String,Objec ...

  2. 第五届蓝桥杯C++B组 地宫取宝

    代码: #include <bits/stdc++.h> using namespace std; #define ll long long const ll mod = 1e9 + 7; ...

  3. PAT 甲级 1135 Is It A Red-Black Tree

    https://pintia.cn/problem-sets/994805342720868352/problems/994805346063728640 There is a kind of bal ...

  4. redis演练

    如何查看所有的key:keys * 如何查询某个key的value:get keyname

  5. 用async/ await来发送异步

    昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了. 先说一下async的用法,它作为一个 ...

  6. ThreadPoolExecutor使用详解

    ThreadPoolExecutor机制  一.概述 1.ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线 ...

  7. U 盘安装 CentOS的方法

    1. 刻录U盘 我使用的工具是 UltralISO 2. 打开ISO 3. 使用<启动>-<写入磁盘映像> 根据U盘的性能 可能好事 5min-15min左右 4.找到想要安装 ...

  8. js函數

    函數是什麼?函數就是被事件驅動或者調用執行的可重複的代碼塊. 函數聲明: 使用關鍵詞function,關鍵詞function大小敏感. function a{代碼塊} 局部變量: 在函數內部聲明的變量 ...

  9. python之tkinter使用-单级菜单

    # 菜单功能说明:单级菜单 import tkinter as tk root = tk.Tk() root.title('菜单选择') root.geometry('200x60') # 设置窗口大 ...

  10. JUC-Condition线程通信

    1,Codition接口描述了可能会与锁有关联的条件变量.这些变量在用法上与使用Object.wait访问的隐式监视器类似. 但提供了更强大的功能,需要指出的是,单个lock可能与多个conditio ...