Lộ Trình Khác Biệt II
Đề bài
Mô tả
Bạn chơi một trò chơi trong ngày. Mỗi ngày bạn bắt đầu ở phòng và cần đến phòng bằng cách đi qua các máy dịch chuyển. Mỗi máy dịch chuyển chỉ được dùng nhiều nhất một lần trong toàn bộ ngày, và mỗi lần dùng tốn một đồng xu.
Hãy tìm số đồng xu ít nhất để hoàn thành đủ ngày, đồng thời in ra lộ trình của từng ngày.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , là số phòng, số máy dịch chuyển và số ngày.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và mô tả một máy dịch chuyển đi từ phòng sang phòng . Máy dịch chuyển chỉ đi được một chiều.
Dữ liệu ra
Nếu không thể hoàn thành đủ ngày, in ra .
Ngược lại, dòng đầu in số đồng xu ít nhất. Sau đó với mỗi ngày in hai dòng: dòng thứ nhất là số phòng trên lộ trình của ngày đó (tính cả phòng và phòng ), dòng thứ hai là danh sách các phòng theo đúng thứ tự đi qua.
Nếu có nhiều phương án cùng đạt số đồng xu ít nhất, in ra một phương án bất kỳ; thứ tự các ngày cũng tuỳ ý.
Ràng buộc
- Không có hai máy dịch chuyển nào cùng đi từ một phòng sang cùng một phòng
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 8 10 2 1 2 1 3 2 5 2 4 3 5 3 6 4 8 5 8 6 7 7 8 |
6 4 1 2 4 8 4 1 3 5 8 |
Ngày 1 đi , ngày 2 đi . Mỗi ngày dùng 3 máy dịch chuyển, và hai lộ trình không dùng chung máy nào, nên tổng là 6 đồng xu. |
| 4 3 2 1 2 2 4 1 3 |
-1 | Chỉ có duy nhất một lộ trình từ phòng 1 tới phòng 4 là . Máy dịch chuyển dẫn vào ngõ cụt, nên không thể có hai ngày dùng những máy khác nhau. |
Bình luận