Tô màu đồ thị
Đề bài
Mô tả
Cho một đồ thị vô hướng gồm đỉnh và cạnh. Ban đầu mỗi cạnh được tô màu đỏ (R) hoặc xanh (B).
Trong mỗi lượt, bạn chọn một đỉnh và đảo màu tất cả các cạnh kề với đỉnh đó: mọi cạnh đỏ kề đỉnh này chuyển thành xanh, và mọi cạnh xanh kề đỉnh này chuyển thành đỏ.
Hãy tìm số lượt ít nhất để làm cho tất cả các cạnh có cùng một màu.
Đồ thị không có khuyên (cạnh nối một đỉnh với chính nó) và không có cạnh lặp (giữa hai đỉnh có nhiều nhất một cạnh).
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số đỉnh và số cạnh.
- dòng tiếp theo, dòng thứ chứa hai số nguyên , và một ký tự : cạnh nối đỉnh với có màu ban đầu là (R nếu đỏ, B nếu xanh).
Dữ liệu ra
- Nếu không thể làm cho tất cả các cạnh cùng màu, in ra .
- Ngược lại, dòng đầu in số lượt ít nhất ; dòng thứ hai in số nguyên là chỉ số các đỉnh được chọn (theo thứ tự bất kỳ). Nếu có nhiều phương án tối ưu, in ra bất kỳ phương án nào.
Ràng buộc
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 6 5 1 3 R 2 3 R 3 4 B 4 5 R 4 6 R |
2 3 4 |
Chọn đỉnh 3 rồi đỉnh 4, sau đó tất cả các cạnh đều cùng màu. |
| 3 3 1 2 B 3 1 R 3 2 B |
1 2 |
Chọn đỉnh 2 làm tất cả các cạnh thành đỏ. |
| 4 5 1 2 R 1 3 R 2 3 B 3 4 B 1 4 B |
-1 | Không có cách nào làm mọi cạnh cùng màu. |
Bình luận