Chuyến dạo của Bob

Đề bài

Mô tả

Cho một đồ thị liên thông vô hướng gồm n đỉnh và m cạnh. Ban đầu bạn đang ở đỉnh 1 và ghi số 1 vào sổ. Bạn có thể di chuyển tự do giữa các đỉnh qua các cạnh. Mỗi khi tới một đỉnh chưa được ghi trong sổ, bạn ghi thêm đỉnh đó vào cuối danh sách. Khi tất cả các đỉnh đã được ghi ít nhất một lần, bạn dừng lại và thu được một hoán vị a1,a2,,an của các đỉnh.

Hãy tìm dãy a1,a2,,an có thứ tự từ điển nhỏ nhất mà bạn có thể ghi được.

Đồ thị có thể chứa cạnh song song (nhiều cạnh nối cùng một cặp đỉnh) và khuyên (cạnh nối một đỉnh với chính nó). Đồ thị được đảm bảo là liên thông.

Dãy x có thứ tự từ điển nhỏ hơn dãy y (cùng độ dài) nếu tại vị trí đầu tiên mà chúng khác nhau, phần tử của x nhỏ hơn phần tử tương ứng của y.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương nm, số đỉnh và số cạnh.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên uivi, mô tả một cạnh vô hướng nối đỉnh uivi.

Dữ liệu ra

In ra một dòng gồm dãy a1,a2,,an có thứ tự từ điển nhỏ nhất, các số cách nhau bởi dấu cách.

Ràng buộc

  • 1n,m105
  • 1ui,vin

Ví dụ

Input Output Giải thích
3 2
1 2
1 3
1 2 3 Đường đi tối ưu: 1213, thu được dãy {1,2,3}.
5 5
1 4
3 4
5 4
3 2
1 5
1 4 3 2 5 Đường đi tối ưu: 14323415.
10 10
1 4
6 8
2 5
3 7
9 4
5 6
3 4
8 10
8 9
1 10
1 4 3 7 9 8 6 5 2 10 Luôn chọn đỉnh nhỏ nhất có thể tới được trong số các đỉnh chưa ghi.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0