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

Lộ Trình Khác Biệt II

Đề bài

Mô tả

Bạn chơi một trò chơi trong k ngày. Mỗi ngày bạn bắt đầu ở phòng 1 và cần đến phòng n 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ộ k 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 đủ k 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 n, m, k là số phòng, số máy dịch chuyển và số ngày.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ab mô tả một máy dịch chuyển đi từ phòng a sang phòng b. 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 đủ k ngày, in ra 1.

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 1 và phòng n), 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

  • 2n500
  • 1m1000
  • 1kn1
  • 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 1248, ngày 2 đi 1358. 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à 124. Máy dịch chuyển 13 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

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0