Đếm dãy con theo tổng XOR
Đề bài
Mô tả
Cho một mảng gồm số nguyên không âm .
Bạn cần trả lời truy vấn. Mỗi truy vấn gồm hai số nguyên và : hãy đếm số dãy con (subsequence) của phần tử đầu tiên sao cho tổng XOR (XOR theo bit) của các phần tử trong dãy con đó bằng đúng .
Một dãy con có thể chứa các phần tử không liền kề nhau, và hai dãy con được coi là khác nhau nếu chúng khác nhau về tập chỉ số được chọn. Dãy con rỗng có tổng XOR bằng , và dãy con chỉ gồm một phần tử có tổng XOR bằng chính phần tử đó.
Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — số phần tử của mảng và số truy vấn.
- Dòng thứ hai chứa số nguyên .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả một truy vấn.
Dữ liệu ra
Với mỗi truy vấn, in ra trên một dòng số lượng dãy con thỏa mãn, lấy phần dư khi chia cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 0 1 2 3 4 4 3 2 0 3 7 5 7 5 8 |
4 2 0 4 0 |
Truy vấn 1: trong có dãy con XOR bằng (ví dụ , , , ). Truy vấn 3: không tạo được XOR từ . Truy vấn 5: không tạo được XOR . |
| 3 2 1 1 1 3 1 2 0 |
4 2 |
Truy vấn 1: từ ba số , các dãy con có XOR gồm chọn hoặc phần tử — tổng cộng cách. Truy vấn 2: từ hai số , XOR khi chọn dãy con rỗng hoặc cả hai — cách. |
Bình luận