zoukankan      html  css  js  c++  java
  • 【USACO 2019 February Bronze】Measuring Traffic 题解

    题目描述
    Farmer John的农场边上的高速公路最近出现了引人注目的流量上升,或者至少Farmer John看起来是这样的。为了证实这件事,他打算用一组传感器测量公路上的车流量,每个传感器被用来测量一小段路面上的车流量的数值。
    不幸的是,某一天经过牛棚的时候,Farmer John被绊倒了,装有传感器的盒子掉进了一个巨大的奶缸,之后它们就不能正常工作了。比起之前可以产生一个精确的车流量读数,现在每个传感器只能输出一个可能结果的范围。例如,一个传感器可能会给出范围[7,13],表示在这段路面上的车流量不小于7,并且不大于13。
    高速公路经过农场的这一段长N英里,车辆仅从一个方向通过公路,从第1英里驶向第N英里。Farmer John想要安装N个传感器——每一个监测高速公路上1英里长的路段。在其中某些路段上,有能够使得车辆进入高速公路的上匝道;在所有这样的路段上,Farmer John会将传感器装在上匝道上,测量流入的(近似)车流量。在某些路段上有能够使得车辆离开高速公路的下匝道;在所有这样的路段上,Farmer John会将传感器装在下匝道上。每一个路段包含至多一个匝道。如果在公路的一个路段上没有上匝道或下匝道,Farmer John就将传感器装在高速公路的主路上。
    给定Farmer John的N个传感器的读数,请求出在高速公路第1英里之前和第N英里之后车流量的最为准确的可能范围。这些范围应当与所有N个传感器的读数相一致。

    输入
    输入的第一行包含N(1≤N≤100)。余下N行每行按从第1英里至第N英里的顺序描述一段1英里长的路段。每行包含一个字符串,为"on"(如果这段路上有一个上匝道),“off”(如果这段路上有一个下匝道),或者是"none"(如果这段路上没有匝道),然后是两个范围为0…1000的整数,表示这段路上的传感器的读数所给出的下界、上界。如果这段路上包含匝道,传感器读数来自于匝道,否则来自于主路。至少一个高速公路路段的描述会是"none"。

    输出
    输出的第一行包含两个整数,为第1英里之前的车流量的最准确的可能范围。第二行包含两个整数,为第N英里之后的车流量的最准确的可能范围。输入保证存在符合要求的解。

    样例输入
    4
    on 1 1
    none 10 14
    none 11 15
    off 2 3

    样例输出
    10 13
    8 12

    提示
    在这个例子中,路段2和路段3的读数组合在一起告诉我们通过这两个路段的车流量为范围[11,14]之间的某个值,因为只有这个范围与两个读数[10,14]和[11,15]均一致。在第1英里,恰有1单位的车辆通过上匝道进入,所以在第1英里之前,车流量一定在范围[10,13]之内。在第4英里,2单位到3单位之间的车辆通过下匝道离开,所以这段路之后可能的车流量范围为[8,12]。

    先放一个老师的英文题解翻译:点这里

    思路:

    实话说这道题比较拗口,一开始看难得一批,结果发现水题一道(我不会告诉你我考试时只有90分的)。
    据我统计,这次考试就这道正确率最低。玩笑归玩笑,我们来讲讲题。

    我们先想求前面和后面的人数区间有什么不同,其实没什么不同,就是求后面要正着,求前面要倒着,然后倒着的on就变成off,反之。
    然后扫描1…N英里的不同高速公路组件时缩小/修改它。每次我们看到传感器直接从高速公路读取数据时,这会将可能的范围[a,b]剪辑到传感器给定的范围。每当我们看到范围为[a′,b′的入口匝道时,可能的交通流的新范围为[a+a′,b+b′。类似地,当我们看到范围为[a′,b′的出口匝道时,可能的交通流值的新范围为[a-b′,b-a′(在这次更新之后,如果范围的下限变为负值,我们将其设置为零,因为我们不能有负的交通流速率)。
    正,反执行两边就可以了。

  • 相关阅读:
    126.输入输出深入以及小结
    125.C++输入小结
    124.C++输出小结
    123.static静态函数与类模板
    123.static静态函数和函数模板
    122.模板与友元
    121.类模板当做参数
    120.嵌套类模板
    119.类模板的默认参数规则
    正睿 2019 省选附加赛 Day1 T1 考考试
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13159892.html
Copyright © 2011-2022 走看看