#P3707. [SDOI2017] 相关分析

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

[SDOI2017] 相关分析

题目描述

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

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

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

  • 1 L,RL,R

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

x=1RL+1i=LRxi\overline{x}={1 \over R-L+1} \sum _{i=L} ^R x_i

y=1RL+1i=LRyi\overline{y}={1 \over R-L+1} \sum _{i=L} ^R y_i

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

$a={\sum_{i=L} ^R (x_i-\overline{x})(y_i-\overline{y}) \over \sum _{i=L} ^R (x_i -\overline{x})^2}$

你需要帮助Frank计算aa

  • 2 L,R,S,TL,R,S,T

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

  • 3 L,R,S,TL,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行,表示操作,格式见题目描述。

输出格式

对于每个1操作,输出一行,表示直线斜率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%的数据 1n,m10001 \leq n,m \leq 1000

另有20%的数据,没有3操作,且2操作中S=0S=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操作不会出现分母为00的情况。

时间限制:1s

空间限制:128MB