zoukankan      html  css  js  c++  java
  • Pond Cascade Gym

    题目:题目链接

    思路:题目让求最下面池子满的时间和所有池子满的时间,首先我们考虑所有池子满的时间,我们从上到下考虑,因为某些池子满了之后溢出只能往下溢水,考虑当前池子如果注满时间最长,那么从第一个池子到当前池子容量之和与流速之和之比是一样的,随着数据读入处理一遍即可得出最大的注满时间,即注满全部池子的时间,接下来我们考虑最下方池子的注满时间,这个时间不会大于单独给这个池子注满的时间,同样的,不会大于给最下方池子和他上面那一个池子一块拿出来后最下方池子的注满时间,反着扫描一遍,就可以得出结果。

    AC代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cmath>
     5 #include <algorithm>
     6 #include <cstring>
     7 #include <vector>
     8 #include <string>
     9 #include <queue>
    10 #include <map>
    11 #include <set>
    12 
    13 #define FRER() freopen("in.txt", "r", stdin);
    14 #define INF 0x3f3f3f3f
    15 
    16 using namespace std;
    17 
    18 int main()
    19 {
    20     //FRER()
    21     int n, num[100005];
    22     double m, minans, sumans, sum, sumv;
    23     while(~scanf("%d %lf", &n, &m)) {
    24         scanf("%d", &num[0]);
    25         sum = 1.0 * num[0];
    26         sumv = m;
    27         sumans = sum / sumv;
    28         for(int i = 1; i < n; ++i) {
    29             scanf("%d", &num[i]);
    30             sum += 1.0 * num[i];
    31             sumv += m;
    32             sumans = max(sumans, sum / sumv);
    33         }
    34         sum = 1.0 * num[n - 1];
    35         sumv = m;
    36         minans = sum / sumv;
    37         for(int i = n - 2; ~i; --i) {
    38             sum += 1.0 * num[i];
    39             sumv += m;
    40             minans = min(minans, sum / sumv);
    41         }
    42         printf("%.8f %.8f
    ", minans, sumans);
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    Python、PyCharm的安装及使用方法(Mac版)
    学习Java web技术
    Java Web基础教程
    JavaWeb--深入Servlet与JSP(运行原理)
    Servlet入门总结及第一个Servlet程序
    Mac系统安装和配置tomcat步骤详解
    Struts2进阶学习4
    Struts2进阶学习3
    Struts2基础学习2
    Struts2基础入门
  • 原文地址:https://www.cnblogs.com/fan-jiaming/p/9833987.html
Copyright © 2011-2022 走看看