Dãy XOR liên tiếp

Xem dạng PDF

Gửi bài giải

Điểm: 4,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Người đăng:
Dạng bài

Bạn được cho hai số nguyên ~x~ và ~y~ không âm. Xét hai dãy vô hạn ~a_1, a_2, a_3, \dots~ và ~b_1, b_2, b_3,\dots~ có

  • ~a_n = n\oplus x~
  • ~b_n = n\oplus y~

Ở đây, ~x\oplus y~ biểu thị phép toán bitwise XOR số nguyên ~x~ và ~y~.

Ví dụ với ~x = 6~, ~8~ phần tử đầu tiên của dãy ~a = [7,4,5,2,3,0,1,14,\dots]~. Lưu ý rằng chỉ số của dãy các phần tử bắt đầu bằng ~1~.

Nhiệm vụ của bạn là tìm dãy con chung liên tiếp dài nhất của dãy ~a~ và ~b~.

Dữ liệu vào:

  • Dòng đầu tiên chứa một số nguyên ~t\ (1\leq t\leq 10^4)~ là số test.
  • ~t~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~x~ và ~y~ ~(0\leq x,y\leq 10^9, x\neq y)~

Dữ liệu ra:

  • In ra mỗi dòng một số nguyên là độ dài dãy con chung liên tiếp dài nhất của mỗi test.

Input:

4
0 1
12 4
57 37
316560849 14570961

Output:

1
8
4
33554432

Giải thích:

  • Ở test đầu tiên, ~7~ phần tử đầu tiên của dãy ~a~ và ~b~ như sau:
    • ~a = [1,2,3,4,5,6,7,\dots]~
    • ~b = [0,3,2,5,4,7,6,\dots]~

Có thể chứng minh được rằng không tồn tại số nguyên ~k~ nào sao cho dãy ~[k, k + 1]~ xuất hiện trong dãy ~b~. Vì vậy đáp án là ~1~.

  • Ở test thứ ba, ~20~ phần tử đầu tiên của dãy ~a~ và ~b~ như sau:
    • ~a = [56,59,58,61,60,63,62,49,48,51,50,53,52,55,54,41,40,43,42,45,\dots]~
    • ~b = [36,39,38,33,32,35,34,45,44,47,46,41,40,43,42,53,52,55,54,49,\dots]~

Có thể chứng minh được rằng chỉ có một dãy con chung liên tiếp dài nhất là dãy ~[41, 40, 43, 42]~ có độ dài là ~4~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.