题目名称 338. [NOI 2004]降雨量
输入输出 rainfall.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarBYVoid 于2009-05-29加入
开放分组 全部用户
提交状态
分类标签
NOI 计算几何 模拟
分享题解
通过:10, 提交:33, 通过率:30.3%
Gravatarhuhuhuhahaha 100 0.011 s 0.31 MiB C++
Gravatarfye 100 0.020 s 16.27 MiB C++
Gravatarfye 100 0.020 s 16.27 MiB C++
Gravatarfye 100 0.021 s 16.27 MiB C++
Gravatarfye 100 0.021 s 16.27 MiB C++
Gravatar131441373 100 0.057 s 6.75 MiB C++
Gravatar.Xmz 100 0.080 s 2.44 MiB C++
Gravatar苏轼 100 0.119 s 19.57 MiB C++
Gravatarkaaala 100 0.182 s 0.27 MiB C++
Gravatarkaaala 100 0.528 s 0.27 MiB C++
关于 降雨量 的近10条评论(全部评论)
此题数据奇葩,冒泡比qsort快
Gravatarkaaala
2012-01-15 15:26 1楼

338. [NOI 2004]降雨量

★★☆   输入文件:rainfall.in   输出文件:rainfall.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

M国是个多雨的国家,尤其是P城,频繁的降雨给人们的出行带来了不少麻烦。为了方便行人雨天过马路,有关部门在每处人行横道的上空都安装了一种名为“自动伞”的装置。(如图1所示)

Image:Rainfall1.gif

图1

每把自动伞都可以近似地看作一块长方形的板,厚度不计。这种伞有相当出色的吸水能力,落到上面的雨水都会完全被伞顶的小孔吸入,并通过管道 运走。不下雨时,这些伞闲置着。一旦下雨,它们便立刻开始作匀速率直线往返运动:从马路的一边以固定的速率移动到另一边,再从另一边以相同的速率返回,如 此往复,直到雨停为止。任何时刻自动伞都不会越过马路的边界。有了自动伞,下雨天没带伞的行人只要躲在伞下行走,就不会被雨淋着了。

由于自动伞的大小有限,当需要使用自动伞过马路的人比较多时,一把自动伞显然是不够的,所以有关部门在几处主要的人行横道上空安装了多把自动伞。每把自动伞的宽度都等于人行横道的宽度,高度各不相同,长度不一定相同,移动速率也不一定相同。

现在已知一处人行横道的详细情况,请你计算从开始下雨到T秒钟后的这段时间内,一共有多少体积的雨水降落到人行横道上。


【输入文件】

第一行有四个整数N,W,T,V。N表示自动伞的数目,W表示马路的宽度,T表示需要统计从开始下雨到多长时间后的降雨情况,V表示单位面积单位时间内的降雨体积。

为了描述方便,我们画出了一个如图2所示的天空中五把伞的剖面图,取马路左边界为原点,取向右为x轴正方向,取向上为y轴正方向,建立平面直角坐标系。这样,每把自动伞都可以看作平面上的一条线段。

右边界

Image:Rainfall2.gif

图2

接下来的N行,每行用三个整数描述一把自动伞。第一个数x是伞的初始位置,用它左端点的横坐标表示。第二个数l是伞的长度,即x方向上的尺 寸。第三个数v是伞的速度,v的大小表示移动的速率。如果v>0,表示开始时伞向右移动;如果v<0,表示开始时伞向左移动;如果v=0,表 示伞不动。


【输出文件】

输出文件只包含一个实数,表示从开始下雨到T秒钟后,一共有多少体积的水降落到人行横道上。输出结果精确到小数点后第二位。


【约定】

  • 雨点均匀地匀速竖直下落
  • 自动伞和马路两者都是水平的
  • 自动伞的宽度和人行横道的宽度相等,都等于1
  • 所有自动伞的往返次数之和不超过250,一来一回算一个往返。


【样例输入】

2 4 3 10
0 1 1
3 1 -1


【样例输出】

65.00

【数据范围】

0 <= n <= 10