题目链接:http://codeforces.com/problemset/problem/557/B

题目意思:有 2n 个茶杯,规定第 i 个茶杯最多只能装 ai 毫升的水。现在给出 w 毫升的水,需要把这 w 毫升(可以不用光)的水倒入到这 2n 个茶杯中,使得分给 n 个男的每个水杯的水恰好是 n 个女的2倍(注意,n 个男的水杯装的水是一样的,n 个女也是)。现在问的是,怎样使得 2n 个杯装的水最多,求出这个值。

*********************************************( 又开始误导他人成分,忽略之)

  假设倒入女孩的水杯的水为 x 毫升,我做的时候直接列出两个不等式,然后取较小值 * 3n(nx 是所有女的水杯的水,2nx 就是所有男的),于是就一直过不了pretest 8了。

   (1)2*x  ≤ 水杯最大容量(ai 最大值)

   (2)nx+ 2nx ≤ w (总不能超过 w 毫升的水吧)

  这样是错的啦。。。。首先(1)式就列得不对!试想,假设水杯编号为1~2n,由于前 n 小的水杯是分给女生的,这表明后 n 大的水杯是分给男生。但是男生最大只能取的水为 n+1 的容量,因为每只水杯的容量有限制嘛~~~~所以我们需要排序,找到第 n+1 位置大的水杯。我一开始还以为要用到二分做啦。。。。= =

*********************************************

  正确思路是需要分情况讨论的!

  将ai 排完序之后我们需要取出a[1]和a[n+1] 来讨论。也就是最少水杯容量(x)和第 n+1 大水杯容量 y 。因为最优解就是将 x 分配给每个女生,y 分配给每个男生。

  注意,它们有可能构成 2 倍的关系,也可能不。所以很自然就要讨论啦。。。。2x 和 y 的大小关系!

  (1) 2x ≤ y    表示可以将 x 毫升的水分给女生,2x 分给男生,反正2x 肯定不大于 y

    总分配水量为:xn + 2xn = 3xn

  (2) 2x > y    此时我们只能把 y/2 毫升的水分给女生(没说一定要分足 x 毫升的水给女生嘛, y/2 肯定比 x 小,不等式自己移位看呗)

    总分配水量为: y/2 * n + y * n = 1.5 yn

  当然,我们怎么分,总不能超过给出的 w 毫升啦,这是大前提哦,所以最后要取较小值作为答案^_^

  

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std; const int maxn = 2e5 + ;
int a[maxn]; int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE int n, w;
while (scanf("%d%d", &n, &w) != EOF) { for (int i = ; i < *n; i++) {
scanf("%d", &a[i]);
}
sort(a, a+n+n);
int maxv = a[n];
int minv = a[]; double ans = 0.0;
if (minv* > maxv) {
ans = (double)maxv * n * 1.5; // maxv/2 * n + maxv * n;
} else {
ans = (double)minv * n * 3.0;
}
printf("%.9lf\n", min((w*1.0), ans));
}
return ;
}

codeforces 557B. Pasha and Tea 解题报告的更多相关文章

  1. Codeforces Educational Round 92 赛后解题报告(A-G)

    Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20m ...

  2. codeforces 476C.Dreamoon and Sums 解题报告

    题目链接:http://codeforces.com/problemset/problem/476/C 题目意思:给出两个数:a 和 b,要求算出 (x/b) / (x%b) == k,其中 k 的取 ...

  3. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  4. codeforces 507B. Amr and Pins 解题报告

    题目链接:http://codeforces.com/problemset/problem/507/B 题目意思:给出圆的半径,以及圆心坐标和最终圆心要到达的坐标位置.问最少步数是多少.移动见下图.( ...

  5. codeforces 500B.New Year Permutation 解题报告

    题目链接:http://codeforces.com/problemset/problem/500/B 题目意思:给出一个含有 n 个数的排列:p1, p2, ..., pn-1, pn.紧接着是一个 ...

  6. codeforces B. Xenia and Ringroad 解题报告

    题目链接:http://codeforces.com/problemset/problem/339/B 题目理解不难,这句是解题的关键 In order to complete the i-th ta ...

  7. codeforces 462C Appleman and Toastman 解题报告

    题目链接:http://codeforces.com/problemset/problem/461/A 题目意思:给出一群由 n 个数组成的集合你,依次循环执行两种操作: (1)每次Toastman得 ...

  8. codeforces 460A Vasya and Socks 解题报告

    题目链接:http://codeforces.com/problemset/problem/460/A 题目意思:有一个人有 n 对袜子,每天早上会穿一对,然后当天的晚上就会扔掉,不过他会在 m 的倍 ...

  9. codeforces 567D.One-Dimensional Battle Ships 解题报告

    题目链接:http://codeforces.com/problemset/problem/567/D 题目意思:给出 1 * n 的 field,编号从左至右依次为 1,2,...,n.问射 m 枪 ...

随机推荐

  1. 几个Web server的HA架构资料

    提高Web性能, 最关键还是要看瓶颈在哪里. 手段不外乎下面几个. 实现从易到难一般为: 优化Big SQL -> 引入CDN -> 引入Memcache等缓存 -> Web负载平衡 ...

  2. sql是如何执行一个查询的!

    引用自:http://rusanu.com/2013/08/01/understanding-how-sql-server-executes-a-query/ Understanding how SQ ...

  3. Outlook不能打开附件(提示:无法创建文件xx,请右键单击要在其中创建文件的文件夹..)

    问题分析: 出现这种问题的几率很小,除非你是每天都需要使用Outlook的办公人员.出现这种问题我想有如下两种可能.1.注册表中指定的附档临时保存的目录没有写入的相关权限.2.同名附档已存在且权限出现 ...

  4. 第三方网站不能调用微信公众平台里的图片了 显示"此图片来自微信公众号平台未经允许不可引用"

    下午ytkah在自己小博客搜索时看到有几篇文章图片显示不了,再访问一些网站时发现有些图片无法显示出来,显示"此图片来自微信公众号平台未经允许不可引用",如下图所示,这个应该是最近微 ...

  5. lianjie

    数值策划入门:如何确定游戏中的资源价值和定价http://bbs.gameres.com/thread_494366.html 一张常规的RPG游戏地图的制作流程 http://bbs.gameres ...

  6. 如何打开xip格式的xcode安装包

    解决方法如下: 1.保证存储空间 20G 2.去除解压验证 xattr -d com.apple.quarantine Xcode_8_beta.xip 3.双击解压 详见: 从官网下载的 xcode ...

  7. C#操作word模板插入文字、图片及表格详细步骤

    c#操作word模板插入文字.图片及表格 1.建立word模板文件 person.dot用书签 标示相关字段的填充位置 2.建立web应用程序 加入Microsoft.Office.Interop.W ...

  8. NFS工作原理及配置文件详解

    nfs工作原理流程       如上图所示,当访问程序通过NFS客户端向NFS服务端存取文件时,其请求数据流程如下几点:     1.首先用户访问网站程序,由程序在NFS客户端上发出NFS文件存取功能 ...

  9. 实现百度IFE2015Spring的任务Task3的几个问题和解决办法

    1.如何实现页面的宽高自适应浏览器的变化,且有一个最小宽和高 <head> <meta charset = "utf-8"> <title>个人 ...

  10. 对象的constructor属性

    对象的constructor属性, 最初是用来标识对象类型的. 比如 ,我们定义一个 Person类,然后实例化两个对象. function Person(name, age, job){this.n ...