Cover it! (Phủ đồ thị)

Đề bài

Mô tả

Cho một đồ thị vô hướng, liên thông, không trọng số gồm n đỉnh và m cạnh. Đồ thị không có khuyên (cạnh nối một đỉnh với chính nó) và không có cạnh bội.

Nhiệm vụ của bạn là chọn ra không quá n/2 đỉnh sao cho mỗi đỉnh không được chọn đều kề (nối trực tiếp bằng một cạnh) với ít nhất một đỉnh đã chọn.

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

Có nhiều truy vấn độc lập cần trả lời.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng truy vấn.
  • Với mỗi truy vấn:
    • Dòng đầu chứa hai số nguyên nm — số đỉnh và số cạnh.
    • m dòng tiếp theo, mỗi dòng chứa hai số nguyên vi,ui — hai đỉnh được nối bởi cạnh thứ i.

Đề bài đảm bảo mỗi đồ thị đều liên thông, không khuyên và không cạnh bội.

Dữ liệu ra

Với mỗi truy vấn, in ra hai dòng:

  • Dòng đầu chứa số k (1kn/2) — số đỉnh được chọn.
  • Dòng thứ hai chứa k số nguyên phân biệt — chỉ số các đỉnh được chọn, theo thứ tự bất kỳ.

Ràng buộc

  • 1t2·105
  • 2n2·105
  • n1mmin(2·105,n(n1)2)
  • 1vi,uin, uivi
  • Tổng m trên tất cả các truy vấn không vượt quá 2·105.

Ví dụ

Input Output Giải thích
2
4 6
1 2
1 3
1 4
2 3
2 4
3 4
6 8
2 5
5 4
4 3
4 1
1 3
2 3
2 6
5 6
1
1
3
1 2 5
Truy vấn 1: đồ thị đầy đủ 4 đỉnh, chỉ cần chọn một đỉnh (ví dụ đỉnh 1) là mọi đỉnh còn lại đều kề nó; k=14/2=2. Truy vấn 2: chọn {1,2,5}; mọi đỉnh còn lại (3, 4, 6) đều kề một trong ba đỉnh này; k=3=6/2. Không yêu cầu tối thiểu hoá k; bất kỳ tập hợp lệ nào cũng được chấp nhận.
1
5 5
1 2
2 3
3 4
4 5
5 1
2
2 5
Đồ thị là một chu trình 5 đỉnh. Chọn {2,5}: đỉnh 1 kề cả 2 và 5, đỉnh 3 kề 2, đỉnh 4 kề 5. k=2=5/2.

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 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