luogu#P3707. [SDOI2017] 相关分析

    ID: 7735 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2017线段树各省省选山东Special Judge前缀和块状链表块状数组分块

[SDOI2017] 相关分析

题目描述

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

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

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

1 L R\verb!1 L R!

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

$$\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+by=ax+b,那么 aa 应当这样计算:

$$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 计算 aa

2 L R S T\verb!2 L R S T!

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

3 L R S T\verb!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)

输入格式

第一行两个数 n,mn,m,表示观测数据组数和操作次数。

接下来一行 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^50S,T1050 \leq |S|,|T| \leq 10^50xi,yi1050 \leq |x_i|,|y_i| \leq 10^5

保证 11 操作不会出现分母为 00 的情况。