#L2005. 「SDOI2017」相关分析

「SDOI2017」相关分析

题目描述

Frank 对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度、颜色等等,进而估算出星星的距离、半径等等。

Frank 不仅喜欢观测,还喜欢分析观测到的数据。他经常分析两个参数之间(比如亮度和半径)是否存在某种关系。

现在 Frank 要分析参数 XXYY 之间的关系。他有 nn 组观测数据,第 ii 组观测数据记录了 xix_iyiy_i。他需要进行以下几种操作:


 1 L R\texttt{• 1 L R}

用直线拟合第 LL 组到第 RR 组观测数据。用 xˉ\bar{x} 表示这些观测数据中 xx 的平均数,用 yˉ\bar{y} 表示这些观测数据中 yy 的平均数,即:

$$\begin{aligned} \bar{x} &= \frac{1}{R - L + 1} \sum\limits_{i = L}^R x_i \\ \bar{y} &= \frac{1}{R - L + 1} \sum\limits_{i = L}^R y_i \end{aligned} $$

如果直线方程是 y=ax+by = ax + b,那么 aabb 应该这样计算:

$$\begin{aligned} a &= \frac{\sum\limits_{i = L}^R (x_i - \bar{x})(y_i - \bar{y})}{\sum\limits_{i = L}^R (x_i - \bar{x})^2} \\ b &= \bar{y} - a \bar{x} \end{aligned} $$

你需要帮助 Frank 计算 aa


 2 L R S T\texttt{• 2 L R S T}

Frank 发现测量第 LL 组到第 RR 组数据时有误差,对于每个 ii 满足 LiRL \leq i \leq Rxix_i 需要加上 SSyiy_i 需要加上 TT


 3 L R S T\texttt{• 3 L R S T}

Frank 发现第 LL 组到第 RR 组数据需要修改,对于每个 ii 满足 LiRL \leq i \leq Rxix_i 需要修改为 (S+i)(S + i)yiy_i 需要修改为 (T+i)(T + i)


输入格式

第一行两个数 nnmm,表示观测数据组数和操作次数。
接下来一行 nn 个数,第 ii 个数是 xix_i
接下来一行 nn 个数,第 ii 个数是 yiy_i
接下来 mm 行,表示操作,格式见题目描述。


输出格式

对于每个 11 操作,输出一行,表示直线斜率 aa。选手输出与标准输出的绝对误差或相对误差不超过 10510^{-5} 即为正确。


样例

输入

3 5
1 2 3
1 2 3
1 1 3
2 2 3 -3 2
1 1 2
3 1 2 2 1
1 1 3

输出

1.0000000000
-1.5000000000
-0.6153846154

数据范围与提示

  • 对于 20%20\% 的数据,1n,m10001 \leq n, m \leq 1000
  • 对于另外 20%20\% 的数据没有 33 操作,且 22 操作中 S=0S = 0
  • 对于另外 30%30\% 的数据没有 33 操作;
  • 对于 100%100\% 的数据,1n,m1051 \leq n, m \leq 10^5
  • 对于所有数据,1LRn1 \leq L \leq R \leq n0S,T1050 \leq |S|, |T| \leq 10^50xi,yi1050 \leq |x_i|, |y_i| \leq 10^5
  • 对于所有数据,11 操作中不会出现分母为 00 这类特殊情况。