[SDOI2017] 相关分析

题目描述

Frank 对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度、颜色等等,进而估算出星星的距离,半径等等。 Frank 不仅喜欢观测,还喜欢分析观测到的数据。他经常分析两个参数之间(比如亮度和半径)是否存在某种关系。 现在 Frank 要分析参数 $X$ 与 $Y$ 之间的关系。他有 $n$ 组观测数据,第 $i$ 组观测数据记录了 $x_i$ 和 $y_i$。他需要一下几种操作。 ### $\verb!1 L R!$ 用直线拟合第 $L$ 组到第 $R$ 组观测数据。用 $\overline{x}$ 表示这些观测数据中 $x$ 的平均数,用 $\overline{y}$ 表示这些观测数据中 $y$ 的平均数,即 $$\begin{aligned}\overline{x}&={1 \over R-L+1} \sum _{i=L} ^R x_i \\\overline{y}&={1 \over R-L+1} \sum _{i=L} ^R y_i\end{aligned}$$ 如果直线方程是 $y=ax+b$,那么 $a$ 应当这样计算: $$a={\displaystyle\sum_{i=L} ^R (x_i-\overline{x})(y_i-\overline{y}) \over \displaystyle\sum _{i=L} ^R (x_i -\overline{x})^2}$$ 你需要帮助 Frank 计算 $a$。 ### $\verb!2 L R S T!$ Frank 发现测量数据第 $L$ 组到第 $R$ 组数据有误差,对每个 $i$ 满足 $L \leq i \leq R$,$x_i$ 需要加上 $S$,$y_i$ 需要加上 $T$。 ### $\verb!3 L R S T!$ Frank 发现第 $L$ 组到第 $R$ 组数据需要修改,对于每个 $i$ 满足 $L \leq i \leq R$,$x_i$ 需要修改为 $(S+i)$,$y_i$ 需要修改为 $(T+i)$。

输入输出格式

输入格式


第一行两个数 $n,m$,表示观测数据组数和操作次数。 接下来一行 $n$ 个数,第 $i$ 个数是 $x_i$。 接下来一行 $n$ 个数,第 $i$ 个数是 $y_i$。 接下来 $m$ 行,表示操作,格式见题目描述。

输出格式


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

输入输出样例

输入样例 #1

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

1.0000000000
-1.5000000000
-0.6153846154

说明

### 数据范围及约定 - 对于 $20\%$ 的数据 $1 \leq n,m \leq 1000$; - 另有 $20\%$ 的数据,没有 $3$ 操作,且 $2$ 操作中 $S=0$; - 另有 $30\%$ 的数据,没有 $3$ 操作。 对于 $100\%$ 的数据,$1 \leq n,m \leq 10^5$,$0 \leq |S|,|T| \leq 10^5$,$0 \leq |x_i|,|y_i| \leq 10^5$。 保证 $1$ 操作不会出现分母为 $0$ 的情况。