8571: 向量基本操作
[Creator : ]
Description
向量基本操作。包括加法,减法,乘法,除法,模,长度,点乘,叉乘。
Input
第一行包括一个整数 $n\ (1 \leq n \leq 500,000)$。
后面 $n$ 行,一个字符串(保证只有 +,-,*,/)和三个或者四个实数,具体由符号觉得。
符号的含义表示为:
1.plus 表示两个向量加法,后面跟随 $4$ 个实数 $x_{1},y_{1},x_{2},y_{2}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$x_2,y_2$ 表示向量 $\overrightarrow{v_2}$,求 $\overrightarrow{v}=\overrightarrow{v_1}+\overrightarrow{v_2}$。
2. mimus 表示两个向量加法,后面跟随 $4$ 个实数 $x_{1},y_{1},x_{2},y_{2}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$x_2,y_2$ 表示向量 $\overrightarrow{v_2}$,求 $\overrightarrow{v}=\overrightarrow{v_1}-\overrightarrow{v_2}$。
3. times 表示向量乘以标量,后面跟随 $3$ 个实数 $x_{1},y_{1},\alpha$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$\alpha$ 表示标量,求 $\overrightarrow{v}=\overrightarrow{v_1} \times \alpha$。
4. div 表示向量除以标量,后面跟随 $3$ 个实数 $x_{1},y_{1},\alpha$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$\alpha$ 表示标量,求 $\overrightarrow{v}=\overrightarrow{v_1} / \alpha$。
5. norm 表示向量范数,后面跟随 $2$ 个实数 $x_{1},y_{1}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,求向量的范数。
所有实数都在 $-10^9 \sim \leq 10^9$ 之间。
后面 $n$ 行,一个字符串(保证只有 +,-,*,/)和三个或者四个实数,具体由符号觉得。
符号的含义表示为:
1.plus 表示两个向量加法,后面跟随 $4$ 个实数 $x_{1},y_{1},x_{2},y_{2}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$x_2,y_2$ 表示向量 $\overrightarrow{v_2}$,求 $\overrightarrow{v}=\overrightarrow{v_1}+\overrightarrow{v_2}$。
2. mimus 表示两个向量加法,后面跟随 $4$ 个实数 $x_{1},y_{1},x_{2},y_{2}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$x_2,y_2$ 表示向量 $\overrightarrow{v_2}$,求 $\overrightarrow{v}=\overrightarrow{v_1}-\overrightarrow{v_2}$。
3. times 表示向量乘以标量,后面跟随 $3$ 个实数 $x_{1},y_{1},\alpha$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$\alpha$ 表示标量,求 $\overrightarrow{v}=\overrightarrow{v_1} \times \alpha$。
4. div 表示向量除以标量,后面跟随 $3$ 个实数 $x_{1},y_{1},\alpha$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$\alpha$ 表示标量,求 $\overrightarrow{v}=\overrightarrow{v_1} / \alpha$。
5. norm 表示向量范数,后面跟随 $2$ 个实数 $x_{1},y_{1}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,求向量的范数。
6. abs 表示向量模,后面跟随 $2$ 个实数 $x_{1},y_{1}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,求向量的模长。
8. cross 表示两个向量叉乘,后面跟随 $4$ 个实数 $x_{1},y_{1},x_{2},y_{2}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$x_2,y_2$ 表示向量 $\overrightarrow{v_2}$,求 $\overrightarrow{v_1} \times \overrightarrow{v_2}$。
7. dot 表示两个向量点乘,后面跟随 $4$ 个实数 $x_{1},y_{1},x_{2},y_{2}$。$x_1,y_1$ 表示向量 $\overrightarrow{v_1}$,$x_2,y_2$ 表示向量 $\overrightarrow{v_2}$,求 $\overrightarrow{v_1} \cdot \overrightarrow{v_2}$。
所有实数都在 $-10^9 \sim \leq 10^9$ 之间。
Output
一共 $n$ 行。
1.plus。输出 $2$ 个实数,用一个空格隔开,表示结果。
2. mimus。输出 $2$ 个实数,用一个空格隔开,表示结果。
3. times。输出 $2$ 个实数,用一个空格隔开,表示结果。
4. div。输出 $2$ 个实数,用一个空格隔开,表示结果。
5. norm。输出 $1$ 个实数,表示结果。
实数保留小数点后 $6$ 位。
1.plus。输出 $2$ 个实数,用一个空格隔开,表示结果。
2. mimus。输出 $2$ 个实数,用一个空格隔开,表示结果。
3. times。输出 $2$ 个实数,用一个空格隔开,表示结果。
4. div。输出 $2$ 个实数,用一个空格隔开,表示结果。
5. norm。输出 $1$ 个实数,表示结果。
6. abs。输出 $1$ 个实数,表示结果。
8. cross。输出 $1$ 个实数,表示结果。
7. dot。输出 $1$ 个实数,表示结果。
实数保留小数点后 $6$ 位。
Sample 1 Input
8
plus 2 3 1 4
minus 1 0 -5 9
times 15 9 3
div 15 9 3
norm 3.5 -2.7
abs -3.7 -2.6
dot 1 1 3 5
cross 1 7 -3.2 6.8
Sample 1 Output
3.000000 7.000000
6.000000 -9.000000
45.000000 27.000000
5.000000 3.000000
19.540000
4.522168
8.000000
29.200000