U276829 Combine
题目背景
**时间限制:** 1.0 秒
**空间限制:** 512 MB
题目描述
D 学校一年级有 3 个班级,A 班、B 班和 C 班。每个班级都有 $n$ 个学⽣,编号为 $1, 2, \cdots, n$。班级内学⽣的编号都是不同的,但不同班级间的编号会重复(即:每个班级都有各⾃的 $1$ 号学⽣)。
A 班、B 班的每个学⽣有⼀个称为⼈⽓值的属性,我们记 A 班 $i$ 号学⽣的⼈⽓值为 $a_i$,B 班 $j$ 号学⽣的⼈⽓值为 $b_j$。我们会按⼀定规则组织 A 班和 B 班的学⽣,在 C 班学⽣的帮助下进⾏合作。
组织的规则由正整数参数 $p$ 决定 $(1 \le p \le 10)$,具体⽽⾔:
- 对于 $p = 1$:当且仅当 $i + j = k$ 时,A 班 $i$ 号学⽣与 B 班 $j$ 号学⽣会在 C 班 $k$ 号学⽣的帮助下进⾏合作;
- 对于 $p = 2$:当且仅当 $i - j = k$ 时,A 班 $i$ 号学⽣与 B 班 $j$ 号学⽣会在 C 班 $k$ 号学⽣的帮助下进⾏合作;
- 按照下表依此类推 $\cdots$
|$p$|条件|
|:---:|:---:|
|$p = 1$|$i + j = k$|
|$p = 2$|$i - j = k$|
|$p = 3$|$i \times j = k$|
|$p = 4$|$i / j = k$ (即 $i = j \times k$)|
|$p = 5$|$\lfloor i / j \rfloor = k$(即 $i$ 整除 $j$ 忽略余数结果为 $k$)|
|$p = 6$|$i~\mathrm{and}~j = k$(按位与运算)|
|$p = 7$|$i~\mathrm{or}~j = k$(按位或运算)|
|$p = 8$|$i~\mathrm{xor}~j = k$(按位异或运算)|
|$p = 9$|$\min(i, j) = k$|
|$p = 10$|$\max(i, j) = k$|
现在,我们要统计 C 班每个学⽣在合作中的作⽤如何。对于 C 班的每个学⽣,我们需要计算他得到的合作值,$k$ 号学⽣的合作值记为 $c_k$。学⽣的合作值为他参与的每次项⽬的合作值之和,⽽某个项⽬的合作值为参与合作的 A 班、B 班
学⽣的⼈⽓值乘积。
例如,对于 $p = 1$,我们希望计算 C 班 4 号学⽣的合作值 $c_4$,根据组织规则,C 班 4 号学⽣参加了 3 次合作:
- A 班 1 号学⽣与 B 班 3 号学⽣的合作(因为 $1 + 3 = 4$);
- A 班 2 号学⽣与 B 班 2 号学⽣的合作;
- A 班 3 号学⽣与 B 班 1 号学⽣的合作。
因此,$c_4 = a_1 \cdot b_3 + a_2 \cdot b_2 + a_3 \cdot b_1$ 。
形式化地说,输⼊正整数 $n$ 和 $p~(1 \le p \le 10)$,并输⼊两个⻓度为 $n$ 的数组 $a_1, a_2, \cdots, a_n$ 和 $b_1, b_2, \cdots, b_n$,求⼀个⻓度为 $n$ 的数组 $c_1, c_2, \cdots, c_n$,其中
$$
c_k = \sum_{1 \le i, j \le n;~\mathrm{judge}(i, j, k) ~\mathrm{is}~\mathrm{true}} a_i \cdot b_j
$$
其中
$$
\mathrm{judge}(i, j, k) =
\begin{cases}
i + j = k, & p = 1 \\
i - j = k, & p = 2 \\
i \cdot j = k, & p = 3 \\
i / j = k, & p = 4 \\
\lfloor i / j \rfloor = k, & p = 5 \\
i~\mathrm{and}~j = k, & p = 6 \\
i~\mathrm{or}~j = k, & p = 7 \\
i~\mathrm{xor}~j = k, & p = 8 \\
\min(i, j) = k, & p = 9 \\
\max(i,j) = k, & p = 10
\end{cases}
$$
输入格式
无
输出格式
无
说明/提示
本题共有 50 个测试点,每个测试点 2 分。
对于所有的测试点,输⼊的 $a_1, a_2, \cdots, a_n$ 和 $b_1, b_2, \cdots, b_n$ 均为不⼤于 $10$ 的正整数。
- 对于前 10 个测试点,$n = 15$,且 $p = 1, 2, \cdots, 10$ 各⼀个测试点;
- 对于接下来 10 个测试点,$n = 511$,且 $p = 1, 2, \cdots, 10$ 各⼀个测试点;
- 对于接下来 10 个测试点,$n = 8191$,且 $p = 1, 2, \cdots, 10$ 各⼀个测试点;
- 对于接下来 10 个测试点,$n = 65535$,且 $p = 1, 2, \cdots, 10$ 各⼀个测试点;
- 对于最后 10 个测试点,$n = 262143$,且 $p = 1, 2, \cdots, 10$ 各⼀个测试点。