310850: CF1899D. Yarik and Musical Notes

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:6 Solved:0

Description

D. Yarik and Musical Notestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

Yarik is a big fan of many kinds of music. But Yarik loves not only listening to music but also writing it. He likes electronic music most of all, so he has created his own system of music notes, which, in his opinion, is best for it.

Since Yarik also likes informatics, in his system notes are denoted by integers of $2^k$, where $k \ge 1$ — a positive integer. But, as you know, you can't use just notes to write music, so Yarik uses combinations of two notes. The combination of two notes $(a, b)$, where $a = 2^k$ and $b = 2^l$, he denotes by the integer $a^b$.

For example, if $a = 8 = 2^3$, $b = 4 = 2^2$, then the combination $(a, b)$ is denoted by the integer $a^b = 8^4 = 4096$. Note that different combinations can have the same notation, e.g., the combination $(64, 2)$ is also denoted by the integer $4096 = 64^2$.

Yarik has already chosen $n$ notes that he wants to use in his new melody. However, since their integers can be very large, he has written them down as an array $a$ of length $n$, then the note $i$ is $b_i = 2^{a_i}$. The integers in array $a$ can be repeated.

The melody will consist of several combinations of two notes. Yarik was wondering how many pairs of notes $b_i, b_j$ $(i < j)$ exist such that the combination $(b_i, b_j)$ is equal to the combination $(b_j, b_i)$. In other words, he wants to count the number of pairs $(i, j)$ $(i < j)$ such that $b_i^{b_j} = b_j^{b_i}$. Help him find the number of such pairs.

Input

The first line of the input contains one integer $t$ ($1 \le t \le 10^4$) — the number of test cases.

The first line of each test case contains one integer $n$ ($1 \leq n \leq 2 \cdot 10^5$) — the length of the arrays.

The next line contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \leq a_i \leq 10^9$) — array $a$.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.

Output

For each test case, output the number of pairs that satisfy the given condition.

ExampleInput
5
1
2
4
3 1 3 2
2
1000 1000
3
1 1 1
19
2 4 1 6 2 8 5 4 2 10 5 10 8 7 4 3 2 6 10
Output
0
2
1
3
19

Output

**题目大意:**

Yarik 是电子音乐的忠实粉丝,并且喜欢创作音乐。他发明了一种音乐记谱系统,其中的音符用整数 $2^k$ 表示,其中 $k$ 是一个正整数。Yarik 使用两个音符的组合来创作音乐,如果两个音符分别是 $a = 2^k$ 和 $b = 2^l$,那么这个组合用整数 $a^b$ 来表示。

例如,如果 $a = 8 = 2^3$,$b = 4 = 2^2$,那么这个音符组合 $(a, b)$ 用整数 $8^4 = 4096$ 来表示。需要注意的是,不同的音符组合可能有相同的表示,比如 $(64, 2)$ 也用 $4096 = 64^2$ 来表示。

Yarik 已经选择了一些音符来创作新旋律,他用一个长度为 $n$ 的数组 $a$ 来记录这些音符,其中第 $i$ 个音符是 $b_i = 2^{a_i}$。数组 $a$ 中的整数可能会有重复。

旋律将由多个音符组合构成。Yarik 想知道有多少对音符 $b_i, b_j$($i < j$)存在,使得它们的组合 $(b_i, b_j)$ 等于 $(b_j, b_i)$。换句话说,他想要计算满足 $b_i^{b_j} = b_j^{b_i}$ 的 $(i, j)$ 对的数量。帮助 Yarik 找到这样的对数。

**输入数据格式:**

输入的第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。

每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 2 \cdot 10^5$)——数组的长度。

下一行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \leq a_i \leq 10^9$)——数组 $a$。

保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

**输出数据格式:**

对于每个测试用例,输出满足给定条件的对的数量。

**示例:**

**输入:**
```
5
1
2
4
3 1 3 2
2
1000 1000
3
1 1 1
19
2 4 1 6 2 8 5 4 2 10 5 10 8 7 4 3 2 6 10
```

**输出:**
```
0
2
1
3
19
```**题目大意:** Yarik 是电子音乐的忠实粉丝,并且喜欢创作音乐。他发明了一种音乐记谱系统,其中的音符用整数 $2^k$ 表示,其中 $k$ 是一个正整数。Yarik 使用两个音符的组合来创作音乐,如果两个音符分别是 $a = 2^k$ 和 $b = 2^l$,那么这个组合用整数 $a^b$ 来表示。 例如,如果 $a = 8 = 2^3$,$b = 4 = 2^2$,那么这个音符组合 $(a, b)$ 用整数 $8^4 = 4096$ 来表示。需要注意的是,不同的音符组合可能有相同的表示,比如 $(64, 2)$ 也用 $4096 = 64^2$ 来表示。 Yarik 已经选择了一些音符来创作新旋律,他用一个长度为 $n$ 的数组 $a$ 来记录这些音符,其中第 $i$ 个音符是 $b_i = 2^{a_i}$。数组 $a$ 中的整数可能会有重复。 旋律将由多个音符组合构成。Yarik 想知道有多少对音符 $b_i, b_j$($i < j$)存在,使得它们的组合 $(b_i, b_j)$ 等于 $(b_j, b_i)$。换句话说,他想要计算满足 $b_i^{b_j} = b_j^{b_i}$ 的 $(i, j)$ 对的数量。帮助 Yarik 找到这样的对数。 **输入数据格式:** 输入的第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 2 \cdot 10^5$)——数组的长度。 下一行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \leq a_i \leq 10^9$)——数组 $a$。 保证所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。 **输出数据格式:** 对于每个测试用例,输出满足给定条件的对的数量。 **示例:** **输入:** ``` 5 1 2 4 3 1 3 2 2 1000 1000 3 1 1 1 19 2 4 1 6 2 8 5 4 2 10 5 10 8 7 4 3 2 6 10 ``` **输出:** ``` 0 2 1 3 19 ```

加入题单

上一题 下一题 算法标签: