Berland và k cây đường đi ngắn nhất
Đề bài
Mô tả
Cho một đồ thị vô hướng liên thông gồm đỉnh đánh số từ đến và cạnh. Giữa hai đỉnh bất kỳ có nhiều nhất một cạnh, không có cạnh nối một đỉnh với chính nó.
Cần chọn ra đúng cạnh sao cho:
- Tập cạnh được chọn vẫn giữ đồ thị liên thông (tức tạo thành cây khung);
- Gọi là số cạnh trên đường đi từ đỉnh đến đỉnh trong cây được chọn, tổng phải nhỏ nhất có thể.
Hãy in ra phương án khác nhau thoả mãn yêu cầu trên, trong đó là tổng số phương án hợp lệ.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, mỗi dòng chứa hai số nguyên , mô tả một cạnh nối đỉnh và . Các cạnh được đánh số từ đến theo thứ tự nhập vào.
Dữ liệu ra
- Dòng đầu in .
- dòng tiếp theo, mỗi dòng là một xâu nhị phân độ dài . Ký tự thứ bằng
1nếu cạnh thứ được chọn trong phương án đó, ngược lại bằng0. Mỗi xâu phải có đúng ký tự1. Các xâu phải đôi một khác nhau. Thứ tự in các phương án tuỳ ý. Nếu có nhiều cách chọn phương án, in ra bất kỳ cách nào.
Ràng buộc
- ,
- Giữa hai đỉnh có nhiều nhất một cạnh. Đồ thị ban đầu liên thông.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 3 1 2 2 3 1 4 4 3 |
2 1110 1011 |
Có đúng cây khung BFS gốc tại đỉnh , in cả hai. |
| 4 6 3 1 2 2 3 1 4 4 3 2 4 1 3 |
1 101001 |
Chỉ có duy nhất một cách chọn cạnh sao cho mọi đỉnh đều cách đỉnh đúng bước. |
| 5 6 2 1 2 1 3 2 4 2 5 3 4 3 5 |
2 111100 110110 |
Có cây thoả mãn, in phương án bất kỳ. |
Bình luận