trang chủ / bài tập / andnzero

AND Khác Không

Đề bài

Mô tả

Cho hai số nguyên lr. Xét mảng gồm tất cả các số nguyên từ l đến r (bao gồm cả hai đầu mút), tức là [l,l+1,,r].

Bạn cần xóa đi một số phần tử (có thể không xóa) sao cho phép AND theo bit (bitwise AND) của tất cả các phần tử còn lại khác 0. Mảng còn lại phải có ít nhất một phần tử.

Hãy tìm số phần tử ít nhất cần xóa.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng test.
  • Mỗi test gồm một dòng chứa hai số nguyên lr.

Dữ liệu ra

Với mỗi test, in ra một số nguyên là số phần tử ít nhất cần xóa.

Ràng buộc

  • 1t104
  • 1lr2·105

Ví dụ

Input Output Giải thích
5
1 2
2 8
4 5
1 5
100000 200000
1
3
0
2
31072
Test 1: mảng là [1,2], 1&2=0. Xóa 1 phần tử (ví dụ số 1) thì mảng còn [2] với AND bằng 20.
Test 2: xóa 4,5,8 thì còn [2,3,6,7], AND bằng 2.
Test 3: mảng [4,5]4&5=40 nên không cần xóa.
3
3 4
5 6
131071 131072
1
0
1
Test 1: [3,4] có AND bằng 0, xóa một phần tử là đủ.
Test 2: [5,6]=[1012,1102] có AND bằng 1002=40.
Test 3: 131071=111172131072=10002 không chung bit nào nên phải xóa một phần tử.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0