机甲选择

题目描述:

在星际联盟的机甲学院中,一年一度的“赤红风暴”机甲驾驶员选拔赛即将拉开帷幕。

“赤红风暴”是一种特殊的双座机甲,需要两位驾驶员拥有极高的默契度与能力互补才能完美启动。学院里共有 $n$ 名优秀的机甲驾驶学员,编号从 $1$ 到 $n$。每位学员都有两项核心能力指标:神经同步率 $a_i$ 和体能耐久度 $b_i$。此外,为了保证战术的多样性,每位学员都被分配到了不同的战术小队中,第 $i$ 名学员所在的战术小队编号为 $c_i$。

经过首席科学家小C多年研究发现,两名学员(设编号为 $i$ 和 $j$,且 $i < j$)能够成功驾驶“赤红风暴”机甲,当且仅当满足以下两个条件:

1. 两人的能力互补交叉和必须完全相等,即满足等式 $a_i + b_j = a_j + b_i$。
2. 两人必须来自不同的战术小队,即 $c_i \neq c_j$。

现在,机甲学院的教官将这 $n$ 名学员的详细档案交给了你。你需要帮助教官统计出,在所有的学员中,到底有多少对 $(i, j)$ 能够成功组队驾驶“赤红风暴”机甲出战?

输入格式:

第一行包含一个整数 $T$,表示测试数据的组数。

对于每组测试数据:

第一行包含一个整数 $n$,表示该校区的学员总数。

第二行包含 $n$ 个整数,依次表示每位学员的神经同步率 $a_1, a_2, \dots, a_n$。

第三行包含 $n$ 个整数,依次表示每位学员的体能耐久度 $b_1, b_2, \dots, b_n$。

第四行包含 $n$ 个整数,依次表示每位学员所在的战术小队编号 $c_1, c_2, \dots, c_n$。

输出格式:

输出共 $T$ 行,每行包含一个整数,表示对应校区中能够成功组队的合法 $(i, j)$ 对数。

数据范围:

  • 对于 $100\%$ 的数据,满足 $1 \le T \le 10$,$1 \le n \le 2 \times 10^5$,$\sum n \le 2 \times 10^5$。
  • $-10^9 \le a_i, b_i \le 10^9$,$1 \le c_i \le n$。

各子任务/测试点的数据范围梯度如下表所示:

测试点编号 n≤ 特殊性质 分值占比
1∼6 103 ∑n≤5000 20%
7∼15 105 保证所有 ci​ 互不相同 30%
16∼30 2×105 无 50%

样例输入:

(双击复制)
2
5
5 2 8 4 1
2 -1 5 5 -2
1 2 1 3 2
4
10 20 30 40
10 20 30 40
1 2 3 4

样例输出:

(双击复制)
4
6

提示:

样例解释 #1

第一组数据成功的情况有:

  • 学员 1 和学员 2:$a_1+b_2 = 5+(-1) = 4$,$a_2+b_1 = 2+2 = 4$。等式成立,且小队编号 $1 \neq 2$,组队成功。
  • 学员 1 和学员 5:$a_1+b_5 = 5+(-2) = 3$,$a_5+b_1 = 1+2 = 3$。等式成立,且小队编号 $1 \neq 2$,组队成功。
  • 学员 2 和学员 3:$a_2+b_3 = 2+5 = 7$,$a_3+b_2 = 8+(-1) = 7$。等式成立,且小队编号 $2 \neq 1$,组队成功。
  • 学员 3 和学员 5:$a_3+b_5 = 8+(-2) = 6$,$a_5+b_3 = 1+5 = 6$。等式成立,且小队编号 $1 \neq 2$,组队成功。

失败的情况比如:

  • 学员 2 和学员 4:$a_2+b_4 = 2+5 = 7$,$a_4+b_2 = 4+(-1) = 3$。等式不成立,组队失败。
  • 学员 2 和学员 5:$a_2+b_5 = 2+(-2) = 0$,$a_5+b_2 = 1+(-1) = 0$。等式成立,但小队编号 $2 = 2$,组队失败。
  • 学员 3 和学员 4:$a_3+b_4 = 8+5 = 13$,$a_4+b_3 = 4+5 = 9$。等式不成立,组队失败。
  • 学员 4 和学员 5:$a_4+b_5 = 4+(-2) = 2$,$a_5+b_4 = 1+5 = 6$。等式不成立,组队失败。

综上所述,第一组数据共有 $4$ 对合法的配对:$(1,2), (1,5), (2,3), (3,5)$。

时间限制: 1000ms
空间限制: 256MB

来源: 温州市计算机学会