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

Dãy XOR tối đa

Đề bài

Mô tả

Cho hai số nguyên nx. Hãy xây dựng một dãy số a1,a2,,al thỏa mãn đồng thời:

  • 1ai<2n với mọi phần tử ai của dãy;
  • không tồn tại đoạn con liên tiếp khác rỗng nào có XOR của các phần tử bằng 0 hoặc bằng x, tức là với mọi 1ijl ta có aiai+1aj{0,x};
  • độ dài l là lớn nhất có thể.

Ở đây là phép XOR trên bit. Lưu ý rằng x không nhất thiết nhỏ hơn 2n.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên nx.

Dữ liệu ra

Dòng đầu tiên ghi độ dài l lớn nhất tìm được.

Nếu l>0, dòng thứ hai ghi l số nguyên a1,a2,,al cách nhau bởi dấu cách, là dãy tìm được.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n18
  • 1x<218

Ví dụ

Input Output Giải thích
3 5 3
1 3 1
Các phần tử đều nằm trong [1,8). XOR của mọi đoạn con là {1,3,1,2,2,3}, không chứa 0 và không chứa 5. Không thể đạt l=4.
2 4 3
1 3 1
x=422 nên ràng buộc về x tự động thỏa mãn, chỉ cần mọi đoạn con có XOR khác 0.
1 1 0 Phần tử duy nhất có thể dùng là 1, nhưng đoạn con gồm một phần tử đó lại có XOR bằng x=1. Vậy dãy rỗng là đáp án duy nhất, và dòng thứ hai được bỏ trống.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0