trang chủ / đề bài / graphcol

Tô màu đồ thị

Đề bài

Mô tả

Cho một đồ thị vô hướng gồm n đỉnh và m cạnh, không có khuyên và không có cạnh bội. Ngoài ra bạn được cho ba số nguyên n1, n2 và n3.

Hãy gán cho mỗi đỉnh một trong ba số 1, 2 hoặc 3 sao cho:

  1. Mỗi đỉnh được gán đúng một số trong {1,2,3}.
  2. Số lượng đỉnh mang nhãn 1 đúng bằng n1.
  3. Số lượng đỉnh mang nhãn 2 đúng bằng n2.
  4. Số lượng đỉnh mang nhãn 3 đúng bằng n3.
  5. Với mọi cạnh (u,v) ta có |cu−cv|=1, trong đó cx là nhãn của đỉnh x.

Nếu tồn tại nhiều cách gán hợp lệ, in ra một cách bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m — số đỉnh và số cạnh của đồ thị.
  • Dòng thứ hai chứa ba số nguyên n1, n2, n3. Đảm bảo n1+n2+n3=n.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ui, vi — một cạnh nối đỉnh ui và vi.

Dữ liệu ra

Nếu tồn tại cách gán hợp lệ, in ra YES ở dòng đầu tiên. Dòng thứ hai in một xâu độ dài n gồm các ký tự 1, 2, 3, trong đó ký tự thứ i là nhãn của đỉnh thứ i.

Nếu không tồn tại cách gán hợp lệ, in ra NO.

Ràng buộc

  • 1≤n≤5000
  • 0≤m≤105
  • 0≤n1,n2,n3≤n và n1+n2+n3=n
  • 1≤ui,vi≤n, ui≠vi
  • Đồ thị không có khuyên và không có cạnh bội.

Ví dụ

Input Output Giải thích
6 3
2 2 2
3 1
5 4
2 5
YES
211323
Nhãn: đỉnh 1→2, 2→1, 3→1, 4→3, 5→2, 6→3. Kiểm tra các cạnh: (3,1) có ‖1−2‖=1; (5,4) có ‖2−3‖=1; (2,5) có ‖1−2‖=1. Số nhãn 1, 2, 3 lần lượt là 2, 2, 2. Đây chỉ là một đáp án hợp lệ; các cách gán khác cũng được chấp nhận.
5 9
0 2 3
1 2
1 3
1 5
2 3
2 4
2 5
3 4
3 5
4 5
NO Đồ thị chứa tam giác (ví dụ 1,2,3) nên không thể tô hai màu; không có cách gán thỏa mãn.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0