题目大意:

给定N F 给定N个水池的大小

每个水池都以流量F开始注水

当位置较前的水池注满后 水会溢出到下一个水池

求 最后一个水池开始溢出的时间 和 所有水池全部注满的时间

1.最后一个n水池开始溢出的时间

当 n-1水池 还没溢出 而 n水池 溢出了,说明 n水池 溢出的时间只取决于它自己

当 n-1水池 溢出了 而 n水池 还没溢出时,说明 n-1水池 会影响 n水池 的溢出

而 n-2水池 和 n-1水池 同样如此

由于流量固定为F 此时假设

n-2水池 不影响 n-1水池 的溢出,而 n-1水池 会影响 n水池 时

那么平均一个水池的时间花费为 (n-1容量+n容量)/ F / 2,即最后一个水池开始溢出的时间

从后开始考虑 即考虑 i水池 到 n水池 有影响

那么求得的最小的平均单水池花费 就是 n水池开始溢出的时间

2.所有水池全部注满的时间

由于水只会向后溢出 故所有水池注满的时间较受前面的水池的影响

当 1水池 还未注满 而 2~n水池 已经注满,说明全部水池注满的时间取决于 1水池

同理 当 1~i水池未注满 而 i+1~n水池 已注满,说明全部水池注满的时间取决于 1~i水池的平均单水池花费

那么从前开始考虑 即考虑 1~i水池还未注满而后面的水池都已注满

那么求得的 1~i水池 的最大的平均单水池花费就是 所有水池全部注满的时间

#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define mem(i,j) memset(i,j,sizeof(i))
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
#define gcd(i,j) __gcd(i,j);
const int N=1e5+;
const int mod=1e9+;
const double eps=1e-; int n;
LL v, c[N]; int main()
{
while(~scanf("%d%lld",&n,&v)) {
inc(i,,n) scanf("%lld",&c[i]);
double ans1=INF,ans2=-INF;
LL sum=;
dec(i,n,) {
sum+=c[i];
double t=(double)sum/(double)(n-i+)/(double)v;
ans1=min(ans1,t);
}
sum=;
inc(i,,n) {
sum+=c[i];
double t=(double)sum/(double)i/(double)v;
ans2=max(ans2,t);
}
printf("%lf %lf\n",ans1,ans2);
} return ;
}

CTU OPEN 2017 Pond Cascade /// 思维的更多相关文章

  1. Gym - 101670B Pond Cascade(CTU Open Contest 2017 贪心,二分)

    题目: The cascade of water slides has been installed in the park recently and it has to be tested. The ...

  2. Pond Cascade Gym - 101670B 贪心+数学

    题目:题目链接 思路:题目让求最下面池子满的时间和所有池子满的时间,首先我们考虑所有池子满的时间,我们从上到下考虑,因为某些池子满了之后溢出只能往下溢水,考虑当前池子如果注满时间最长,那么从第一个池子 ...

  3. CTU OPEN 2017 Punching Power /// 最大独立集

    题目大意: 给定n 给定n个机器的位置 要求任意两个机器间的距离至少为1.3米 求最多能选择多少个机器 至少为1.3米 说明若是位于上下左右一步的得放就不行 将机器编号 将不能同时存在的机器连边 此时 ...

  4. CTU OPEN 2017 Go Northwest! /// 简单公式

    题目大意: 给定n个点 求任选一对点连成的直线斜率为1或-1的概率 对于点(x1,y1) 和 点(x2,y2) 斜率 k=(y1-y2)/(x1-x2) 当k=1 则 (y1-y2)/(x1-x2)= ...

  5. CTU OPEN 2017 Ice cream samples /// 尺取法

    题目大意: 给定n k 接下来n行 给定n个摊位的冰淇淋信息 首先给一个t 表示这个摊位有t个冰淇淋 接下来t个数表示对应冰淇淋的品种 走到连续的几个摊位 会买下走过的摊位的所有的冰淇淋 求 要买下所 ...

  6. CTU OPEN 2017 Shooting Gallery /// 区间DP

    题目大意: 给定n 给定n个数 选定一个区间留下其他消去 要求区间两端的两个数一样 若成功留下一个区间 则在选定区间的基础上 继续进行上述操作 直到无法再选出这样的区间 求最多操作数 按区间长度由短到 ...

  7. CTU Open Contest 2017

    这场题很水.水题我就懒得贴了. B - Pond Cascade 优先队列维护这个水池需要多少时间 或者 直接扫一遍. #include <cstdio> #include <cst ...

  8. Python(三)基础篇之「模块&面向对象编程」

    [笔记]Python(三)基础篇之「模块&面向对象编程」 2016-12-07 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...

  9. Python(四)基础篇之「文件对象&错误处理」

    [笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE    编程之魅  Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...

随机推荐

  1. linux 文件解压

    解压 tar -xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz tar -xjvf file.tar.bz2   //解压 tar.bz ...

  2. A Bite Of React(1)

    react: component and views : produce html abd add them on a page( in the dom) <import React from ...

  3. Java小游戏

    这是一个飞机躲避子弹的小游戏,其中有许多干货 这是蒟蒻我第二次做,请各位大佬多多指教 目录 1.游戏主窗口的创建 2.图形绘制_文本绘制_颜色改变_图像对象的加载 3.线程内部类实现动画 4.游戏物体 ...

  4. JQ的live学习

    $("#StartTime").live("blur keypress keyup",function(){ if($("#EndTime" ...

  5. Hibernate4教程二:基本配置

    可编程的配置方式一: 如果在配置cfg.xml的时候,不想在里面配置hbm.xml怎么办呢?可在程序里使用可编程的配置方式,也就是使用程序来指定在cfg.xml里面的配置信息,不推荐这种方式.如下: ...

  6. 最大公因数数gcd模板

    首先蒟蒻是在大佬的博客里学习的代码,代码风格多有相似之处,大佬博客https://www.cnblogs.com/lMonster81/p/10433902.html 最大公因数那,顾名思义就是两个数 ...

  7. noip2018火柴棒等式

    以下题目摘自洛谷p1149 给你n根火柴棍,你可以拼出多少个形如“A+B=CA+B=C”的等式?等式中的AA.BB.CC是用火柴棍拼出的整数(若该数非零,则最高位不能是00).用火柴棍拼数字0-90− ...

  8. Spring高频率面试题

    1.Spring怎样定义类的作用域 通过bean 定义中的scope属性来定义. 2.Spring支持的几种bean的作用域 支持以下五种bean的作用域: singleton : bean在每个Sp ...

  9. Tomcat 配置错误界面

    Tomcat发生错误时跳转到错误页面 注意 :5.0下操作需要删除掉注释语句,不然报错,原因未知 一.修改 tomcat 的配置文件 修改 tomcat 的配置文件,当页面发生错误时跳转到指定的页面, ...

  10. find及其他命令

    Find命令 Find / -type f    :f为普通文件 Find / -name *.txt :查找.txt结尾的 Find / -size  +30M   :找根目录下大于30M的文件 F ...