Dãy XOR tốt
Đề bài
Mô tả
Cho dãy số nguyên dương .
Với mỗi số trong dãy, ta được phép thực hiện thao tác sau tuỳ ý nhiều lần: chọn một số bất kỳ của dãy và đổi chỗ hai bit bất kỳ trong biểu diễn nhị phân của nó (biểu diễn nhị phân được xem như có vô hạn bit ở phía trước). Chẳng hạn, số có thể biến thành , , hay .
Một dãy được gọi là tốt nếu bằng các thao tác trên ta có thể làm cho XOR của tất cả các phần tử của nó bằng .
Hãy đếm số cặp với sao cho dãy con liên tiếp là dãy tốt.
Dữ liệu vào
- Dòng đầu chứa số nguyên là độ dài của dãy.
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
Một số nguyên duy nhất là số cặp thoả mãn.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 6 7 14 |
2 | Hai cặp hợp lệ là và . Với : biến và , khi đó . Với : biến , , giữ nguyên , khi đó . |
| 4 1 2 1 16 |
4 | Bốn cặp hợp lệ là , , và . Mọi phần tử đều có đúng một bit nên chỉ cần số phần tử là chẵn. |
Bình luận