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

Đồ thị đỏ - trắng

Đề bài

Mô tả

Cho một đồ thị vô hướng đơn gồm n đỉnh và ban đầu không có cạnh nào. Ta chọn một tập cạnh để tô màu đỏ, sau đó mọi cặp đỉnh còn lại đều được nối bằng một cạnh màu trắng. Kết quả là đồ thị đầy đủ trên n đỉnh, trong đó mỗi cạnh mang đúng một trong hai màu.

Gọi dr là đường kính của đồ thị con chỉ gồm các cạnh đỏ và dw là đường kính của đồ thị con chỉ gồm các cạnh trắng (cả hai đồ thị con đều xét trên đủ n đỉnh). Đường kính của một đồ thị là giá trị lớn nhất của khoảng cách ngắn nhất giữa hai đỉnh bất kỳ của nó; nếu đồ thị không liên thông thì quy ước đường kính bằng 1.

Độ sặc sỡ của cách tô là min(dr,dw).

Hãy tìm một tập cạnh đỏ sao cho độ sặc sỡ đúng bằng k, hoặc cho biết điều đó là không thể.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên nk.

Dữ liệu ra

Nếu không tồn tại cách tô nào thoả mãn, in ra 1.

Ngược lại, dòng đầu in số nguyên m là số cạnh đỏ. Trong m dòng tiếp theo, mỗi dòng in hai số nguyên aibi (1ai,bin, aibi) mô tả một cạnh đỏ. Mỗi cạnh chỉ được in đúng một lần, đồ thị đỏ phải là đồ thị đơn (không có khuyên, không có cạnh bội). Thứ tự các cạnh cũng như thứ tự hai đỉnh trong mỗi cạnh là tuỳ ý.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 2n1000
  • 1k1000

Ví dụ

Input Output Giải thích
4 1 -1 Với n=4 không có cách tô nào cho độ sặc sỡ bằng 1.
5 2 4
1 2
2 3
3 4
4 5
Đồ thị đỏ là đường đi 12345 nên dr=4. Đồ thị trắng gồm các cạnh 13, 14, 15, 24, 25, 35 và có dw=2. Vậy độ sặc sỡ là min(4,2)=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 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