#L759685. 小L的发动机

小L的发动机

T759685 小L的发动机

题目背景

灵感来源于:SgdSgd参数WeightsWeights的更新公式weights = weights + alpha * err * dataMatrix[indexList[randIndex]]

题目描述

小L有一个神奇的遥控车发动机。这个发动机通过三个参数 kik_idiridir_istepistep_i 来决定在第 ii 个时间段内遥控车的移动。

我们约定,在第 ii 个时间段内,遥控车在直线上的移动距离计算公式为: L=ki×diri×stepiL = k_i \times dir_i \times step_i

其中:

  • kik_i 代表发动机的动力系数
  • diridir_i 代表发动机的运转方向,取值为 1 代表向正方向前进,取值为 -1 代表向负方向倒车;
  • stepistep_i 代表在这个时间段内发动机的运转步数

假设遥控车一开始停在坐标原点(位置 0)。现在小L已经知道了在 t1t-1 个时间段内,每个阶段发动机的各项参数。但是小L的算术不太好,请你编写程序帮他计算一下:在经历完这 t1t-1 个时间段后,遥控车最终将停在坐标轴的哪个位置?

输入格式

第一行,包含一个整数 tt,代表时间段的右端点(即共有 t1t-1 个时间段)。

第二行,包含 t1t-1 个浮点数,第 ii 个数字 kik_i 代表第 ii 个时间段的动力系数。

第三行,包含 t1t-1 个整数,第 ii 个数字 diridir_i 代表第 ii 个时间段的运转方向。

第四行,包含 t1t-1 个整数,第 ii 个数字 stepistep_i 代表第 ii 个时间段的运转步数。

输出格式

一个浮点数 rr,代表遥控车最终停在位置 x=rx=r 处(保留两位小数)。

输入输出样例 #1

输入 #1

4
0.5 0.6 0.4
1 1 -1
2 4 5

输出 #1

1.40

说明/提示

【样例一解释】

遥控车在初始时刻处于坐标原点 x=0x = 0

  • 在第 1 个时间段,移动距离为:0.5×1×2=10.5 \times 1 \times 2 = 1,于是遥控车移动到了 x=1x = 1 的位置。
  • 在第 2 个时间段,移动距离为:0.6×1×4=2.40.6 \times 1 \times 4 = 2.4,于是遥控车移动到了 1+2.4=3.41 + 2.4 = 3.4 的位置。
  • 在第 3 个时间段,移动距离为:0.4×1×5=20.4 \times -1 \times 5 = -2,于是遥控车移动到了 3.42=1.43.4 - 2 = 1.4 的位置。

最终遥控车处于 x=1.40x = 1.40 的位置。

【数据范围】

对于 100%100\% 的测试数据,保证 1t1041 \le t \le 10^40<ki<10 < k_i < 1diri{1,1}dir_i \in \{-1,1\}1stepi1041 \le step_i \le 10^4

温馨提示
闭上眼睛,放轻松,想象一下现在就是你修改密码的那天,想一想你当时是不是设置了一个“绝对不会忘”的密码?😄
PS:如果现在忘了,那就只能找老师啦~