题目描述
Frank 对天文学非常感兴趣,他经常用望远镜看星星, 同时记录下它们的信息,比如亮度、颜色等等,进而估算出星星的距离、半径等等。
Frank 不仅喜欢观测,还喜欢分析观测到的数据。他经常分析两个参数之间 (比如亮度和半径) 是否存在某种关系。
现在 Frank 要分析参数 X 与 Y 之间的关系。他有 n 组观测数据,第 i 组观测数据记录了 xi 和 yi。他需耍进行以下几种操作:
-
1 L R
用直线拟合第 L 组到第 R 组观测数据。用 xˉ 表示这些观测数据中 x 的平均数,用 yˉ 表示这些观测数据中 y 的平均数,即
xˉyˉ=R−L+11i=L∑Rxi=R−L+11i=L∑Ryi
如果直线方程是 y=ax+b,那么 a、b 应该这样计算:
ab=i=L∑R(xi−xˉ)2i=L∑R(xi−xˉ)(yi−yˉ)=yˉ−axˉ
你需要帮助 Frank 计算 a。
-
2 L R S T
Frank 发现测量第 L 组到第 R 组数据时有误差,对于每个 i 满足 L≤i≤R,xi 需要加上 S,yi 需要加上 T。
-
3 L R S T
Frank 发现第 L 组到第 R 组数据需要修改,对于每个 i 满足 L≤i≤R,xi 需要修改为 (S+i),yi 需要修改为 (T+i)。
输入格式
第一行两个数 n、m,表示观测数据组数和操作次数。
接下来一行 n 个数,第 i 个数是 xi。
接下来一行 n 个数,第 i 个数是 yi。
接下来 m 行,表示操作,格式见题目描述。
输出格式
对于每个 1 操作,输出一行,表示直线斜率 a。选手输出与标准输出的绝对误差或相对误差不超过 10−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% 的数据,1≤n,m≤1000;
对于另外 20% 的数据没有 3 操作,且 2 操作中 S=0;
对于另外 30% 的数据没有 3 操作;
对于 100% 的数据,1≤n,m≤105;
对于所有数据,1≤L≤R≤n,0≤∣S∣,∣T∣≤105,0≤∣xi∣,∣yi∣≤105;
对于所有数据,1 操作中不会出现分母为 0 这类特殊情况。