/ OIer TK / 题库 /

相关分析

相关分析

测试数据来自 system/2018

描述

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

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

现在Frank要分析参数\(X\)与\(Y\)之间的关系。他有n组观测数据,第i组观测数据记录了\(x_i\)和\(y_i\)。他需要一下几种操作:

1 L R:用直线拟合第L组到底R组观测数据。用\(\bar{x}\)表示这些观测数据中\(x\)的平均数,用\(\bar{y}\)表示这些观测数据中\(y\)的平均数,即

\(\bar{x}=\frac{1}{R-L+1}\sum_{i=L}^R x_i\)

\(\bar{y}=\frac{1}{R-L+1}\sum_{i=L}^R y_i\)

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

\(a=\frac{ \sum_{i=L}^R (x_i-\bar{x})(y_i-\bar{y}) }{ \sum_{i=L}^R (x_i-\bar{x})^2 }\)

\(b=\bar{y}-a\bar{x}\)

你需要帮助Frank计算\(a\)。

2 L R S T:Frank发现测量数据第\(L\)组到底\(R\)组数据有误差,对每个\(i\)满足\(L \le i \le R\),\(x_i\)需要加上\(S\),\(y_i\)需要加上\(T\)。

3 L R S T:Frank发现第\(L\)组到第\(R\)组数据需要修改,对于每个\(i\)满足\(L \le i \le R\),\(x_i\)需要修改为\((S+i)\),\(y_i\)需要修改为\((T+i)\)。

格式

输入格式

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

接下来一行\(n\)个数,第\(i\)个数是\(x_i\)。

接下来一行\(n\)个数,第\(i\)个数是\(y_i\)。

接下来\(m\)行,表示操作,格式见题目描述。

输出格式

对于每个1操作,输出一行,表示直线斜率\(a\)。输出保留到 小数点后3位

样例1

样例输入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.000
-1.500
-0.615

限制

对于20%的数据,\(1\le n,m\le 1000\)

另有20%的数据,没有3操作,且2操作中\(S=0\)

另有30%的数据,没有3操作。

对100%的数据,\(1\le n,m\le 10^5\)

对于所有数据,\(1\le L\le R\le n\),\(0\le |S|,|T|\le 10^5\),\(0\le |x_i|,|y_i|\le 10^5\)

对于所有数据,1操作中不会出现分母为0这类特殊情况。

来源

SDOI 2017 Round1 Day2

信息

ID
1950
难度
(无)
分类
(无)
标签
递交数
0
已通过
0
通过率
?
上传者