说明
给定正整数 n 平面上一些点 (xi,yi)i=1n⊂R2,支持以下操作:
- 1 l r a b:将编号在 [l,r] 中的点平移 v=(a,b)。
- 即沿 v 方向平移 ∣v∣ 的距离。
- 2 l r a b θ:将编号在 [l,r] 中的点以 (a,b) 为中心逆时针旋转 θ
- 保证 θ∈(−π,π),以弧度制给出。
- 3 l r a b λ:将编号在 [l,r] 中的点以 (a,b) 为中心放缩 ∣λ∣ 倍
- 即在指向 (a,b) 的方向所在直线上移动,距离缩小 (∣λ∣<1) 或变大 (∣λ∣>1)。
- 例如 λ=0 即变为 (a,b),λ<0 则其相对于 (a,b) 的方向会相反。
- 4 l r θ y0:将编号在 [l,r] 中的点以 y=(tanθ)x+y0 为对称轴做对称变换
- 保证 θ∈(−2π,2π),以弧度制给出。
- 例如,θ=0,y0=0 即沿 x 轴对称。
- 5 l r θ y0:将编号在 [l,r] 中的点投影到 y=(tanθ)x+y0
- 保证 θ∈(−2π,2π),以弧度制给出。
- 例如,θ=0,y0=0 即投影到 x 轴上。
- 6 l r:求编号在 [l,r] 中的点的重心
- 点集 {(ai,bi)}i=1m 的重心定义为 $(\sum \limits_{i=1}^{m} a_i / m, \sum \limits_{i=1}^{m} b_i / m)$。
- 7 l r a b:求编号在 [l,r] 中的点到 (a,b) 的距离的平方的和(注意,不是距离的和的平方)
- 点集 {(ai,bi)}i=1m 到 (a,b) 的距离的平方的和即 i=1∑m(ai−a)2+(bi−b)2。
输入格式
从标准输入读入数据。
第一行一个整数 n,q 表示点数和操作数。
接下来 n 行,每行两个实数表示 (xi,yi)。
接下来 q 行,每行若干实数表示一次操作,保证格式同题面。
输出格式
输出到标准输出。
若干行,每行依次对 6 和 7 操作输出两个或一个实数,表示所求的重心坐标或距离平方和。
10 20
26.389153 -31.339463
-98.664509 -58.061567
16.023894 14.489272
-67.840842 -74.793309
19.790708 -87.062719
31.541964 88.441505
-75.918013 24.526470
57.288832 -39.033977
38.274184 -67.446883
-90.906424 -73.528612
3 4 4 32.938694 -6.774595 1.000221
1 2 6 69.965610 -39.563795
4 3 10 -1.399075 38.282976
4 6 7 -1.016301 61.080461
7 9 10 76.549276 22.856189
7 3 7 -96.501727 5.585970
6 8 9
4 2 8 1.215917 -90.918350
7 4 8 55.948842 38.373278
1 5 9 -83.845362 -6.619437
5 6 9 -1.202044 -90.146760
7 1 4 -81.574047 -56.555229
3 1 5 75.690820 60.620104 0.980271
4 5 9 1.512746 89.531420
5 2 5 0.071305 79.784122
6 2 4
1 3 6 90.288492 72.829660
6 4 4
7 1 10 -51.991614 -6.732535
5 5 6 0.087950 71.164056
21029.678359
120220.146461
-14.172376 -63.985055
95006.134951
52111.910474
2.849235 79.987632
35.040886 148.667661
302347.683678
提示
样例 2
见题目目录下的 2.in 与 2.ans。
样例 2 解释
该样例中仅有 1,3,6 操作,且 n,q≤2000。
样例 3
见题目目录下的 3.in 与 3.ans。
样例 3 解释
该样例中仅有 1,3,6,7 操作,且 n,q≤2000。
样例 4
见题目目录下的 4.in 与 4.ans。
样例 4 解释
该样例中仅有 1,2,3,6,7 操作,且 n,q≤2000。
样例 5
见题目目录下的 5.in 与 5.ans。
样例 5 解释
该样例中 n,q≤2000。
样例 6
见题目目录下的 6.in 与 6.ans。
样例 6 解释
该样例与最终评测时子任务 7 的数据强度相同。
数据范围
::cute-table{tuack}
| 子任务编号 |
n≤ |
q≤ |
可能出现的操作编号 |
子任务分值 |
| 1 |
2,000 |
1,3,6,7 |
10 |
| 2 |
^ |
1,2,3,6,7 |
^ |
| 3 |
1,2,3,4,5,6,7 |
| 4 |
5×105 |
2×104 |
1,3,6 |
20 |
| 5 |
^ |
1,3,6,7 |
^ |
| 6 |
1,2,3,6,7 |
| 7 |
1,2,3,4,5,6,7 |
10 |
提示
为了避免精度误差,评测时选手的输出与标准程序的输出相对或绝对误差不超过 10−3 即算通过。
其中,实数 a,b 的绝对误差即 ∣a−b∣,相对误差即 max(∣a∣,∣b∣)∣a−b∣。
保证任意时刻任意一点的横纵坐标的绝对值均不超过 106。