QOJ.ac

QOJ

Limite de temps : 20 s Limite de mémoire : 512 MB Points totaux : 100

#858. GCD vs. XOR

Statistiques

Optymalizacja to świetna zabawa! Zwłaszcza wtedy, gdy nie jest ona konieczna.

Wszyscy wiedzą, że operacje bitowe (np. bitowe XOR) są szybsze niż funkcje rekurencyjne (takie jak największy wspólny dzielnik, GCD). Aby zaimponować swoim przełożonym na stażu, zastąpiłeś w flagowym projekcie firmy wszystkie wystąpienia $gcd(x, y)$ znacznie szybszymi $xor(x, y)$.

To było wczoraj, w piątek. Teraz zastanawiasz się, czy nie powinieneś był przetestować swojego nowego kodu przed wdrożeniem na produkcję... Cóż, lepiej późno niż wcale. Mając dany ciąg liczb $a_1, \dots, a_n$, określ, ile par $(i, j)$ ($1 \le i < j \le n$) faktycznie spełnia warunek $gcd(a_i, a_j) = xor(a_i, a_j)$. Przypomnijmy, że $gcd(x, y)$ oznacza największy wspólny dzielnik $x$ i $y$, podczas gdy $xor(x, y)$ to operacja bitowego XOR na $x$ i $y$.

Wejście

Pierwsza linia wejścia zawiera liczbę zestawów danych $z$ ($1 \le z \le 20$). Następnie następują opisy zestawów danych.

Pierwsza linia zestawu danych zawiera liczbę całkowitą $n$ ($1 \le n \le 2\,000\,000$). Druga linia zawiera liczby całkowite $a_1, a_2, \dots, a_n$, wszystkie dodatnie i nieprzekraczające $1\,000\,000$.

Całkowita długość wszystkich ciągów we wszystkich zestawach danych nie przekracza $3 \cdot 10^7$.

Wyjście

Dla każdego zestawu danych wypisz pojedynczą liczbę całkowitą: liczbę par $(a_i, a_j)$ z $i < j$ spełniających $gcd(a_i, a_j) = xor(a_i, a_j)$.

Przykład

Wejście 1

1
4
2 3 4 3

Wyjście 1

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.