CTU OPEN 2017 Pond Cascade /// 思维
题目大意:
给定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 /// 思维的更多相关文章
- 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 ...
- Pond Cascade Gym - 101670B 贪心+数学
题目:题目链接 思路:题目让求最下面池子满的时间和所有池子满的时间,首先我们考虑所有池子满的时间,我们从上到下考虑,因为某些池子满了之后溢出只能往下溢水,考虑当前池子如果注满时间最长,那么从第一个池子 ...
- CTU OPEN 2017 Punching Power /// 最大独立集
题目大意: 给定n 给定n个机器的位置 要求任意两个机器间的距离至少为1.3米 求最多能选择多少个机器 至少为1.3米 说明若是位于上下左右一步的得放就不行 将机器编号 将不能同时存在的机器连边 此时 ...
- CTU OPEN 2017 Go Northwest! /// 简单公式
题目大意: 给定n个点 求任选一对点连成的直线斜率为1或-1的概率 对于点(x1,y1) 和 点(x2,y2) 斜率 k=(y1-y2)/(x1-x2) 当k=1 则 (y1-y2)/(x1-x2)= ...
- CTU OPEN 2017 Ice cream samples /// 尺取法
题目大意: 给定n k 接下来n行 给定n个摊位的冰淇淋信息 首先给一个t 表示这个摊位有t个冰淇淋 接下来t个数表示对应冰淇淋的品种 走到连续的几个摊位 会买下走过的摊位的所有的冰淇淋 求 要买下所 ...
- CTU OPEN 2017 Shooting Gallery /// 区间DP
题目大意: 给定n 给定n个数 选定一个区间留下其他消去 要求区间两端的两个数一样 若成功留下一个区间 则在选定区间的基础上 继续进行上述操作 直到无法再选出这样的区间 求最多操作数 按区间长度由短到 ...
- CTU Open Contest 2017
这场题很水.水题我就懒得贴了. B - Pond Cascade 优先队列维护这个水池需要多少时间 或者 直接扫一遍. #include <cstdio> #include <cst ...
- Python(三)基础篇之「模块&面向对象编程」
[笔记]Python(三)基础篇之「模块&面向对象编程」 2016-12-07 ZOE 编程之魅 Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...
- Python(四)基础篇之「文件对象&错误处理」
[笔记]Python(四)基础篇之「文件对象&错误处理」 2016-12-08 ZOE 编程之魅 Python Notes: ★ 如果你是第一次阅读,推荐先浏览:[重要公告]文章更新. ...
随机推荐
- spring注解开发:Configuration&Bean
1.使用xml创建bean的方式 1.首先新建一个maven工程,添加如下依赖 <dependency> <groupId>org.springframework</gr ...
- springmvc 异常统一处理的三种方式详解
1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦 ...
- Java开发者职业生涯要看的200+本书
作者:老刘链接:https://www.zhihu.com/question/29581524/answer/684872838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 【转】SQLSERVER磁盘原理
[声明:本篇博客转载自http://www.cnblogs.com/ljhdo/p/5149401.html] 最近一段时间的工作主要是与SQLSERVER数据库打交道,需要对SQLSERVER有一个 ...
- SpringMvc返回给前端数据@ResponseBody响应体【支持Ajax】
1).在Controller中写 //@ResponseBody响应体是jackson包提供的 用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格 ...
- Spring开发总结
自动装载配置开启: spring.factories内容: org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.b ...
- 【leetcode】988. Smallest String Starting From Leaf
题目如下: Given the root of a binary tree, each node has a value from 0 to 25representing the letters 'a ...
- Windows漏洞利用 ms17-010
漏洞名称 SMB 远程命令执行漏洞(ms17-010) 漏洞描述 继2016年 8 月份黑客组织 Shadow Brokers 放出第一批 NSA “方程式小组”内部黑客工具后,2017 年 4 月 ...
- Mac 终端SSH连接服务器
1.打开终端 2.看是否是处于root目录下,是看第3步:否则执行sudo -i,输入电脑密码 3.执行 ssh root@host(host:ip地址或者域名) 4.如果不是第一次,则已成功连接.第 ...
- 【多线程】无锁编程以及CAS
无锁编程 / lock-free / 非阻塞同步 无锁编程,即不使用锁的情况下实现多线程之间的变量同步,也就是在没有线程被阻塞的情况下实现变量的同步,所以也叫非阻塞同步(Non-blocking Sy ...