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

Lật tiền tố nhị phân

Đề bài

Mô tả

Cho hai xâu nhị phân ab cùng độ dài n (chỉ gồm các kí tự 01).

Một thao tác được định nghĩa như sau: chọn một số nguyên p (1pn), sau đó với tiền tố độ dài p của a, ta đồng thời đảo bit từng vị trí (đổi 01) và đảo ngược thứ tự các kí tự trong tiền tố đó.

Ví dụ, nếu a=001011 và chọn p=3 thì a trở thành 011011. Nếu tiếp đó chọn p=6 thì a trở thành 001001.

Nhiệm vụ của bạn là biến a thành b bằng không quá 2n thao tác. Có thể chứng minh điều này luôn thực hiện được.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên t (1t1000) — số bộ dữ liệu.
  • Với mỗi bộ:
    • Dòng đầu chứa số nguyên n (1n105).
    • Hai dòng kế tiếp lần lượt chứa hai xâu nhị phân ab độ dài n.

Tổng giá trị n trên toàn bộ các bộ dữ liệu không vượt quá 105.

Dữ liệu ra

Với mỗi bộ, in một dòng theo định dạng:

kp1p2pk

trong đó 0k2n là số thao tác đã dùng và pi (1pin) là độ dài tiền tố ở thao tác thứ i. Nếu có nhiều phương án hợp lệ, in ra bất kì phương án nào.

Ràng buộc

  • 1t1000
  • 1n105
  • Tổng n không vượt quá 105.

Ví dụ

Input Output Giải thích
5
2
01
10
5
01011
11100
2
01
01
10
0110011011
1000110100
1
0
1
3 1 2 1
3 1 5 2
0
7 1 10 8 7 1 2 1
1 1
Bộ 1: 01110010. Bộ 3: a đã bằng b nên không cần thao tác nào. Các đáp án khác cũng được chấp nhận miễn k2n và xâu cuối cùng bằng b.
1
3
000
111
1 3 Lật tiền tố độ dài 3 của a=000: đảo bit từng vị trí thành 111, đảo ngược thứ tự vẫn là 111. Vậy a=b sau đúng 1 thao tác.

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