canuc80k2024·25/50

Đếm XOR Dưới Ngưỡng

Nộp bài trên LQDOJ

Bài 20 · Trie

Duy trì một đa tập động và đếm bao nhiêu phần tử có XOR với giá trị truy vấn nhỏ hơn một ngưỡng.

Ở truy vấn , mỗi bản sao đang có đóng góp khi và chỉ khi . Dấu bất đẳng thức là nghiêm ngặt; giá trị bằng không được tính.

Input

  • Dòng đầu chứa số nguyên .
  • dòng tiếp theo, mỗi dòng có dạng hoặc .

Output

  • Với mỗi truy vấn loại , in một dòng chứa số bản sao thỏa điều kiện.

Constraints

  • .
  • trong mọi sự kiện.
  • trong truy vấn loại .
  • Đa tập ban đầu rỗng.
  • Trước mỗi sự kiện luôn có ít nhất một bản sao của .
  • Có ít nhất một truy vấn loại ; truy vấn vẫn hợp lệ khi đa tập đang rỗng.
  • Các phần tử bằng nhau được đếm theo số bản sao.

Scoring

  • Subtask ( số điểm): .
  • Subtask ( số điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

8
1 5
1 2
1 5
3 4 4
2 5
3 4 4
3 7 3
2 5

Output

2
1
1

Giải thích: Ban đầu hai bản sao đều cho , còn không thỏa nên kết quả là . Sau khi xóa một bản sao , hai truy vấn tiếp theo lần lượt có đúng một phần tử thỏa.

Lời giải tóm tắt
  • Ý tưởng: Dùng Binary Trie có cnt. Chèn/xóa cập nhật đường bit; truy vấn đếm <l từ bit cao: khi l_b=1, cộng toàn bộ nhánh tạo XOR bit 0 rồi tiếp tục ở nhánh tạo bit 1; khi l_b=0 chỉ tiếp tục ở nhánh tạo bit 0.
  • Tính đúng đắn: Cnt của mỗi nút luôn bằng số bản sao hiện có đi qua nút đó vì thêm và xóa cập nhật đúng một đơn vị trên toàn đường. Trong truy vấn, giả sử các bit XOR cao hơn đang bằng prefix tương ứng của l. Nếu l_b=0, nhánh tạo XOR bit 1 sẽ vượt l nên chỉ nhánh tạo 0 còn hợp lệ. Nếu l_b=1, toàn bộ nhánh tạo 0 đã nhỏ hơn tại bit đầu khác nhau nên được cộng bằng cnt; nhánh tạo 1 vẫn bằng prefix l và phải xét tiếp. Các nhóm được cộng rời nhau và bao phủ đúng mọi giá trị có XOR nhỏ hơn l.
  • Độ phức tạp: Mỗi sự kiện đi qua 31 mức: O(31q) thời gian và O(31q) bộ nhớ trong trường hợp xấu nhất.
  • Đối chứng nhỏ: Giữ bảng tần suất; với mỗi truy vấn nhỏ, duyệt mọi giá trị và cộng tần suất nếu (x XOR p) < l. Đây là mô hình độc lập được dùng cho mười test nhỏ.