Trò Chơi Ghép Xâu Nhị Phân
Đề bài
Mô tả
Cho xâu nhị phân khác nhau từng đôi một. Xét trò chơi xếp các xâu thành một dãy sao cho ký tự đầu tiên của mỗi xâu (kể từ xâu thứ hai) trùng với ký tự cuối cùng của xâu liền trước. Xâu đầu tiên trong dãy có thể là bất kỳ xâu nào.
Bạn được phép đảo ngược một số xâu trong tập (đảo ngược một xâu là viết các ký tự theo thứ tự ngược lại, ví dụ ). Sau khi đảo ngược, tập xâu vẫn phải gồm các xâu khác nhau từng đôi một, và phải tồn tại một cách sắp xếp toàn bộ xâu thoả mãn luật chơi ở trên.
Hãy xác định số lượng xâu cần đảo ngược là ít nhất và chỉ ra một tập chỉ số các xâu được chọn để đảo ngược. Nếu không có cách nào, in .
Dữ liệu vào
- Dòng đầu chứa — số bộ dữ liệu ().
- Với mỗi bộ:
- Dòng đầu chứa — số xâu ().
- dòng tiếp theo, mỗi dòng là một xâu nhị phân không rỗng, chỉ gồm các ký tự
0và1. Các xâu trong cùng một bộ là khác nhau từng đôi một.
Tổng trên toàn bộ các bộ dữ liệu không vượt quá . Tổng độ dài các xâu trên toàn bộ các bộ dữ liệu không vượt quá .
Dữ liệu ra
Với mỗi bộ, in ra:
- nếu không thể thực hiện được.
- Ngược lại, dòng đầu in — số xâu cần đảo ngược ít nhất (). Dòng thứ hai in chỉ số khác nhau của các xâu cần đảo ngược (đánh số từ theo thứ tự xuất hiện trong dữ liệu vào). Nếu có thể bỏ trống dòng thứ hai. Nếu có nhiều đáp án, in bất kỳ đáp án nào.
Ràng buộc
- Tổng không vượt quá .
- Tổng độ dài các xâu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 0001 1000 0011 0111 3 010 101 0 2 00000 00001 4 01 001 0001 00001 |
1 3 -1 0 2 1 2 |
Bộ 1: đảo xâu thứ 3 (), một thứ tự hợp lệ là . Bộ 2: không thể (chú ý ngược lại là , ngược lại là , không đổi — không có cách nào ghép thành chuỗi). Bộ 3: đã sẵn sàng, ví dụ . Bộ 4: đảo hai xâu đầu ( và ), một thứ tự hợp lệ là . |
Bình luận