Tô màu loại kem
Đề bài
Mô tả
Cho một cây gồm đỉnh và loại kem được đánh số từ đến . Mỗi đỉnh của cây chứa một tập gồm loại kem khác nhau. Với mỗi loại kem (từ đến ), tập các đỉnh trong chứa loại kem tạo thành một đồ thị con liên thông của (quy ước: tập rỗng cũng được coi là liên thông).
Từ cây ta xây dựng một đồ thị gồm đỉnh. Trong , có cạnh nối hai đỉnh và () khi và chỉ khi tồn tại ít nhất một đỉnh trong chứa cả hai loại kem và .
Hãy tô màu các đỉnh của sao cho không có hai đỉnh kề nhau cùng màu, với số màu sử dụng là ít nhất.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, dòng thứ bắt đầu bằng số nguyên , sau đó là số nguyên phân biệt — danh sách các loại kem ở đỉnh .
- dòng cuối, mỗi dòng chứa hai số nguyên và mô tả một cạnh của cây.
Dữ liệu ra
- Dòng đầu in một số nguyên — số màu nhỏ nhất cần dùng.
- Dòng thứ hai in số nguyên, số thứ là màu của đỉnh trong (mỗi màu từ đến ).
Nếu có nhiều cách tô hợp lệ, in ra một cách bất kỳ.
Ràng buộc
- , các cạnh tạo thành một cây.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 1 1 2 2 3 1 2 1 2 2 3 |
2 1 1 2 |
Loại và cùng có mặt ở đỉnh nên phải khác màu. Loại chỉ ở đỉnh nên có thể tô tuỳ ý. |
| 4 5 0 1 1 1 3 3 2 4 5 2 1 3 2 4 3 |
3 1 1 1 2 3 |
Tại đỉnh có ba loại nên cần ít nhất màu. Các loại còn lại có thể tô bằng màu bất kỳ. |
Bình luận