#19240. 变速曲率引擎

变速曲率引擎

你好,我是阿西莫夫。

在物理学中,直觉往往是我们最大的敌人。

当我们谈论“速度”时,大脑倾向于简单的加减乘除。如果我告诉你,我一半时间跑得像蜗牛,一半时间跑得像猎豹,你可能会觉得我的平均速度是两者之中。但如果我是一半路程跑得像蜗牛,一半路程跑得像猎豹,结果会让你大吃一惊——那只蜗牛会严重拖累整体的进度。

这就是调和平均数算术平均数的博弈。为了考察学生是否真正理解 v=stv = \frac{s}{t} 这个定义式,我为你构思了这道题目。


[OI 题库] 变速曲速引擎 (The Variable Warp Drive)

题目背景

“在相对论的宇宙里,唯一不变的就是变化本身。但无论你飞得多快,总账还是要算的。” —— 《银河帝国:基地》

一艘星际飞船“远星号”正在执行从端点星到川陀的长途跃迁任务。这条航线被划分成了 NN 个不同的星际扇区。

由于每个扇区的宇宙尘埃密度和引力场不同,飞船在穿越每个扇区时必须保持恒定的不同速度。

  • 在第 ii 个扇区,航程长度为 sis_i 光年。
  • 在第 ii 个扇区,飞船的巡航速度为 viv_i 光年/年。

舰长需要向指挥部汇报这次总航程的平均速度。 请注意:全程平均速度 \neq 各段速度的算术平均值。它是总路程与总时间的比值。

题目描述

输入 NN 个扇区的数据,每个数据包含该路段的距离 sis_i 和速度 viv_i。 请计算飞船跑完全程的平均速度。

输入格式

第一行一个整数 NN,表示扇区的数量。 接下来 NN 行,每行两个浮点数 si,vis_i, v_i,分别表示第 ii 个扇区的距离和速度。

输出格式

一个浮点数,表示全程的平均速度,保留 2 位小数

样例数据

样例 1 (经典陷阱)

2
100.0 100.0
100.0 50.0
66.67

(解析: 第一段:100光年,速度100 \rightarrow 耗时 1.0 年。 第二段:100光年,速度50 \rightarrow 耗时 2.0 年。 总路程 = 200,总时间 = 3.0。 平均速度 = 200/366.67200 / 3 \approx 66.67 注意:(100+50)/2=75(100+50)/2 = 75 是错误的!)

样例 2 (路程极短)

3
10.0 5.0
20.0 10.0
30.0 15.0
10.00

数据范围

  • 1N10001 \le N \le 1000
  • 0<si,vi10000.00 < s_i, v_i \le 10000.0