QOJ.ac

QOJ

時間限制: 20 s 記憶體限制: 512 MB 總分: 100

#858. GCD vs. XOR

统计

Tối ưu hóa thật thú vị! Đặc biệt là khi nó không thực sự cần thiết.

Ai cũng biết rằng các phép toán bit (ví dụ: XOR bit) nhanh hơn các hàm đệ quy (như ước chung lớn nhất, GCD). Để gây ấn tượng với người giám sát thực tập, bạn đã thay thế tất cả các trường hợp $gcd(x, y)$ trong dự án chủ chốt của công ty bằng $xor(x, y)$ nhanh hơn nhiều.

Đó là chuyện của ngày hôm qua, thứ Sáu. Bây giờ bạn bắt đầu suy nghĩ liệu mình có nên kiểm tra mã nguồn mới trước khi đưa vào vận hành thực tế hay không... Chà, muộn còn hơn không. Cho một dãy số $a_1, \dots, a_n$, hãy xác định có bao nhiêu cặp $(i, j)$ ($1 \le i < j \le n$) thực sự thỏa mãn $gcd(a_i, a_j) = xor(a_i, a_j)$. Nhắc lại rằng $gcd(x, y)$ biểu thị ước chung lớn nhất của $x$ và $y$, trong khi $xor(x, y)$ là phép toán XOR bit giữa $x$ và $y$.

Dữ liệu vào

Dòng đầu tiên của dữ liệu vào chứa số lượng bộ test $z$ ($1 \le z \le 20$). Các mô tả của các bộ test theo sau.

Dòng đầu tiên của một bộ test chứa một số nguyên $n$ ($1 \le n \le 2\,000\,000$). Dòng thứ hai chứa các số nguyên $a_1, a_2, \dots, a_n$, tất cả đều là số dương và không vượt quá $1\,000\,000$.

Tổng độ dài của tất cả các dãy số qua tất cả các bộ test không vượt quá $3 \cdot 10^7$.

Dữ liệu ra

Với mỗi bộ test, hãy in ra một số nguyên duy nhất: số lượng cặp $(i, j)$ với $i < j$ thỏa mãn $gcd(a_i, a_j) = xor(a_i, a_j)$.

Ví dụ

Dữ liệu vào 1

1
4
2 3 4 3

Dữ liệu ra 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.