Menorah
Đề bài
Mô tả
Có ngọn nến xếp thành một dãy. Trạng thái ban đầu được mô tả bằng xâu nhị phân độ dài : ngọn nến thứ đang cháy nếu và tắt nếu .
Trong một thao tác, bạn chọn một ngọn nến đang cháy ở vị trí bất kỳ. Sau thao tác đó:
- Ngọn nến được chọn giữ nguyên trạng thái cháy.
- Tất cả các ngọn nến còn lại đổi trạng thái (cháy thành tắt và ngược lại).
Cho trạng thái đích được mô tả bằng xâu nhị phân độ dài . Hãy tìm số thao tác ít nhất để biến thành , hoặc thông báo không thể.
Bài toán gồm nhiều bộ kiểm thử độc lập.
Dữ liệu vào
- Dòng đầu chứa số nguyên () — số bộ kiểm thử.
- Với mỗi bộ:
- Dòng đầu chứa số nguyên () — số ngọn nến.
- Dòng thứ hai chứa xâu độ dài gồm các ký tự
0và1. - Dòng thứ ba chứa xâu độ dài gồm các ký tự
0và1.
Tổng trên tất cả các bộ kiểm thử không vượt quá .
Dữ liệu ra
Với mỗi bộ kiểm thử, in ra số thao tác ít nhất để biến thành , hoặc nếu không thể.
Ràng buộc
- Tổng không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 11010 11010 2 01 11 3 000 101 9 100010111 101101100 9 001011011 011010101 |
0 1 -1 3 4 |
Bộ 1: hai xâu đã trùng nhau. Bộ 2: chọn ngọn nến thứ 2 (đang cháy) → xâu trở thành . Bộ 3: không có ngọn nến nào cháy nên không thể thao tác. Bộ 4: cần tối thiểu 3 thao tác. Bộ 5: cần tối thiểu 4 thao tác. |
| 1 3 110 111 |
-1 | có 2 ngọn cháy, có 3 ngọn cháy. Cả hai điều kiện chẵn () và lẻ () đều không thỏa. |
Bình luận