Chu trình trong đồ thị

Đề bài

Mô tả

Cho một đồ thị vô hướng G gồm n đỉnh, các đỉnh được đánh số từ 1 đến n. Biết rằng mỗi đỉnh của đồ thị được nối trực tiếp bằng cạnh với ít nhất k đỉnh khác.

Nhiệm vụ của bạn là tìm trong đồ thị một chu trình đơn có độ dài ít nhất k+1.

Một chu trình đơn độ dài d (với d>1) là một dãy các đỉnh đôi một khác nhau v1,v2,,vd sao cho v1vd được nối bằng một cạnh, đồng thời với mọi i (1i<d), hai đỉnh vivi+1 cũng được nối bằng một cạnh.

Dữ liệu đảm bảo luôn tồn tại đáp án. Nếu có nhiều đáp án, bạn được in ra bất kỳ đáp án nào hợp lệ.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k: số đỉnh, số cạnh và cận dưới của bậc mỗi đỉnh.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ai, bi: chỉ số hai đỉnh được nối bởi cạnh thứ i.

Đồ thị không chứa cạnh bội (nhiều cạnh giữa cùng một cặp đỉnh) và không chứa khuyên (cạnh nối một đỉnh với chính nó).

Dữ liệu ra

  • Dòng đầu in số nguyên r (rk+1): độ dài chu trình tìm được.
  • Dòng thứ hai in r số nguyên khác nhau v1,v2,,vr: các đỉnh của chu trình theo thứ tự.

Ràng buộc

  • 3n,m105
  • 2kn1
  • 1ai,bin, aibi

Ví dụ

Input Output Giải thích
4 6 3
4 3
1 2
1 3
1 4
2 3
2 4
4
1 2 3 4
Đồ thị đầy đủ 4 đỉnh, mỗi đỉnh có bậc 3=k. Chu trình 12341 có độ dài 4k+1=4.
3 3 2
1 2
2 3
3 1
3
1 2 3
Tam giác, mỗi đỉnh bậc 2=k. Cả tam giác là chu trình độ dài 3k+1=3.

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