luogu#P8105. 「LCOI2022」 Cow Dance

「LCOI2022」 Cow Dance

题目背景

Bessie 带着他的奶牛姐妹们来跳舞了。

她们已经规划好了跳舞的步骤,但是为了更加美观,她们需要知道其中一些头奶牛在某时的平均位置,已达到更完美的表演效果。

不幸的是,由于 Bessie 的姐妹太多了,最多会有 8×1048\times 10^4 只奶牛同时来跳舞。她没有什么方便且快速的方法算这些平均位置,所以向你求助。

题目描述

Bessie 和她的姐妹们已经排好了位置,第 ii 头奶牛的坐标为 (xi,yi)(x_i,y_i)。其中,xix_ixx 轴坐标,yiy_iyy 轴坐标。

她们的舞蹈队形会有这几种变换方式:

  1. 移动:xxyy 号奶牛的 xixi+ax_i\to x_i+ayiyi+by_i\to y_i+b
  2. 旋转:xxyy 号奶牛以 (a,b)(a,b) 为旋转中心顺时针旋转 g°
  3. 散开: xxyy 号奶牛以 (a,b)(a,b) 为中心散开为 pq\dfrac{p}{q} 倍。即设之前奶牛坐标为 AA,散开后坐标为 BB(a,b)(a,b)GG,$\overrightarrow{GB}=\dfrac{p}{q}\overrightarrow{GA}$。

Bessie 想知道:对于 xxyy 号奶牛,他们的平均位置 $(\frac{\sum\limits^y_{i=x}x_i}{y-x+1},\frac{\sum\limits^y_{i=x}y_i}{y-x+1})$。

舞会就要开始了,所以她只能给你 1s\texttt{1s} 的时间。

输入格式

第一行两个整数,n,mn,m

接下来 nn 行,每行两个整数 xi,yix_i,y_i,表示第 i(1in)i(1\le i\le n) 个点的坐标

接下来 mm 行,每行第一个整数为 optopt

opt=1opt=1,则接下来包含四个整数 x,y,a,bx,y,a,b,进行一次移动操作。

opt=2opt=2,则接下来包含五个整数 x,y,a,b,gx,y,a,b,g,进行一次旋转操作。

opt=3opt=3,则接下来包含六个整数 x,y,a,b,p,qx,y,a,b,p,q,进行一次散开操作。

opt=4opt=4,则接下来包含两个整数 x,yx,y,表示询问编号为 xyx \sim y 的奶牛的平均位置。

输出格式

即询问结果,以换行隔开,答案误差允许在 10410^{-4} 的范围内。

3 7
1 1
1 3
3 1
1 1 2 1 -2
4 1 3
2 1 3 2 0 270
4 1 2
3 1 2 2 2 2 1
4 1 3
4 3 3
2.3333333333 0.3333333333
2.0000000000 0.0000000000
1.6666666667 -1.0000000000
1.0000000000 1.0000000000

提示

【样例解释】

00 为初始情况。11 为进行样例中 1 1 2 1 -2 操作后结果。22 为进行样例中 2 1 3 2 0 270 操作后结果。33 为进行样例中 3 1 2 2 2 2 1 操作后结果。

【数据范围与约定】

保证运算时所有数的绝对值小于或等于 101510^{15}

subtask 特殊限制 分数
11 1n,m1031\le n,m\le10^3 88
22 只有旋转操作且都按奶牛为旋转中心 1818
33 只有散开操作且都按奶牛为位似中心
44 没有旋转和散开操作 88
55 对于所有操作和询问 x=yx=y 1818
66 旋转中心和散开中心都是奶牛 88
77 1n,m8×1041\le n,m\le 8\times10^4 1010
88 没有特殊限制 1212

对于 100%100\% 的数据,1n,m3×1051\le n,m\le3\times10^51xyn1\le x\le y\le n32768a,b<32768-32768\le a,b<327680<pq2333330< \dfrac{p}{q}\le 2333330g3590\le g\le359,初始坐标限制同 a,ba,b

注:

  • 请注意常数因子优化。
  • 此题输入输出量较大,建议使用 scanfprintf