#P6588. 『JROI-1』 向量

『JROI-1』 向量

题目背景

前言:虽然 SCR 已经并入了 JROI,但作为 JROI 的负责人,我还是想要感谢一下 SCR 出题组的无私奉献。出于对出题人的敬意。我们不会在题目背景故事上做大的改动,只会添加小部分上下衔接的语句。


蒟蒻火锅正在煮,自然要打一盘游戏了。

小 L 是个喜欢打第五的初中生。这天他刚自学完了向量的基本运算,正在打第五时,他看着自己画出来的长短、方向各异的机关墙(他在玩疯眼),有了一个奇妙的想法。

题目描述

小 L 有 nn 个向量 $\overrightarrow{a_1},\overrightarrow{a_2}\ldots\overrightarrow{a_n}$,他希望你能够帮他回答下面两个问题。

  • 对于给定的 l,rl,r,求出
$$\sum\limits_{i=l}^{r-1}\sum\limits_{j=i+1}^{r}\overrightarrow{a_i}\cdot\overrightarrow{a_j}$$
  • 对于给定的 l,rl,r,求出
$$\sum\limits_{i=l}^{r-1}\sum\limits_{j=i+1}^{r}\overrightarrow{a_i}\oplus\overrightarrow{a_j}$$

随着时间的推移,这些向量也会不断发生变化,小 L 希望你在发生变化后仍然能给出答案。

输入格式

第一行两个整数 n,mn,m,分别代表向量个数和操作次数。

接下来 nn 行,每行两个整数 x,yx,y,第 ii 行表示向量 ai→\overrightarrow{a_i}。

接下来 mm 行,每行首先有一个整数 optopt 表示操作序号,之后有若干个整数表示一次操作。一共有下面五种操作。

  1. 输入三个整数 i,x,y(1≤i≤n)i,x,y(1\leq i\leq n),将 ai→\overrightarrow{a_i} 加上 (x,y)(x,y)。
  2. 输入三个整数 i,x,y(1≤i≤n)i,x,y(1\leq i\leq n),将 ai→\overrightarrow{a_i} 减去 (x,y)(x,y)。
  3. 输入两个整数 i,t(1≤i≤n)i,t(1\leq i\leq n),将 ai→\overrightarrow{a_i} 修改为 tai→t\overrightarrow{a_i}。
  4. 输入两个整数 l,r(1≤l<r≤n)l,r(1\leq l<r\leq n),求 $\sum\limits_{i=l}^{r-1}\sum\limits_{j=i+1}^{r}\overrightarrow{a_i}\cdot\overrightarrow{a_j}$。
  5. 输入两个整数 l,r(1≤l<r≤n)l,r(1\leq l<r\leq n),求 $\sum\limits_{i=l}^{r-1}\sum\limits_{j=i+1}^{r}\overrightarrow{a_i}\oplus\overrightarrow{a_j}$。

输出格式

对于所有的第四和第五种操作,一行有一个整数,为这次操作的答案。

3 5
1 1
4 5
1 4
1 1 3 6
2 3 3 0
4 2 3
3 2 3
5 1 3
12
84

提示

样例 1 解释

前两次操作后三个向量分别为 (4,7),(4,5),(−2,4)(4,7),(4,5),(-2,4),之后询问结果为 4×(−2)+5×4=124 \times(-2)+5\times4=12。

下一次操作后三个向量分别为 (4,7),(12,15),(−2,4)(4,7),(12,15),(-2,4),询问结果为 $(4\times15-7\times12)+[4\times4-7\times(-2)]+[12\times4-15\times(-2)]=-24+30+78=84$


数据规模与约定

本题采用捆绑测试。

  • Subtask 1 ( 20%20\% ):n,m≤100n,m\leq 100。
  • Subtask 2 ( 30%30\% ):没有操作五。
  • Subtask 3 ( 50%50\% ):无特殊要求。

对于 100%100\% 的数据,2≤n≤1052\leq n\leq 10^5,1≤m≤1051\leq m\leq 10^5,保证对于任意时刻的向量 ai→\overrightarrow{a_i},满足 −1000≤xi,yi≤1000-1000\leq x_i,y_i\leq 1000。


关于向量运算

对于向量 a→,b→\overrightarrow{a},\overrightarrow{b} 和常数 λ\lambda,假定 a→,b→\overrightarrow{a},\overrightarrow{b} 的坐标表示分别为 (xa,ya),(xb,yb)(x_a,y_a),(x_b,y_b):

  • $\overrightarrow{a}+\overrightarrow{b}=(x_a+x_b,y_a+y_b)$
  • $\overrightarrow{a}-\overrightarrow{b}=(x_a-x_b,y_a-y_b)$
  • $\lambda\overrightarrow{a}=(\lambda x_a,\lambda y_a)$
  • $\overrightarrow{a}\cdot\overrightarrow{b}=x_ax_b+y_ay_b$
  • $\overrightarrow{a}\oplus\overrightarrow{b}=x_ay_b-x_by_a$