Subtask 1 (50 điểm): 10 test có N nhỏ, cho phép duyệt mọi cặp.
Subtask 2 (50 điểm): 10 test đầy đủ; test 19 và 20 đều có N=3⋅105, một test nhấn mạnh bit cao và một test phân bố ngẫu nhiên.
Example
Test 1
Input
3
0 1 4
Output
10
Giải thích: Ba giá trị XOR là 0⊕1=1,0⊕4=4 và 1⊕4=5; tổng bằng 10.
Lời giải tóm tắt
Ý tưởng: Ở mỗi bit b, có ones·zeros cặp khác nhau tại bit đó, mỗi cặp đóng góp 2^b. Cộng đóng góp của 60 bit theo modulo.
Chứng minh đúng đắn: Mỗi bước của thuật toán duy trì đúng đại lượng hoặc điều kiện nêu trong ý tưởng. Quy tắc chọn được áp dụng độc lập trên từng bit hoặc từng prefix theo đúng hợp đồng; vì vậy mọi phương án bị loại đều không thể tốt hơn, còn phương án được chọn đạt giá trị tối ưu. Suy ra đầu ra của thuật toán là hợp lệ và tối ưu.
Độ phức tạp: Thuật toán đáp ứng cận lớn nhất của đề; phần cài đặt chỉ dùng bộ nhớ tuyến tính theo kích thước input hoặc hằng số theo số bit.