Tô màu vòng tròn
Đề bài
Mô tả
Cho một đồ thị có hướng gồm đỉnh và cung (cho phép có cung lặp và khuyên tự nối). Bạn cần tô mỗi đỉnh của đồ thị bằng một trong màu (với ) sao cho: với mọi cung đi từ đỉnh tới đỉnh , màu của đỉnh phải là màu kế tiếp của màu tô đỉnh .
Các màu được đánh số vòng tròn từ tới . Nghĩa là với mỗi màu (), màu kế tiếp của nó là màu ; còn màu kế tiếp của màu là màu . Đặc biệt, nếu thì màu kế tiếp của màu vẫn là màu .
Nhiệm vụ của bạn là tìm và in ra giá trị lớn nhất có thể () sao cho có thể tô màu đồ thị thỏa mãn điều kiện trên. Lưu ý rằng bạn không nhất thiết phải dùng hết cả màu (tức là không bắt buộc mỗi màu đều phải có đỉnh mang màu đó).
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và là số đỉnh và số cung của đồ thị.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và , cho biết cung thứ đi từ đỉnh tới đỉnh .
Dữ liệu ra
In ra một số nguyên duy nhất, là số màu lớn nhất có thể dùng để tô đồ thị (thỏa ).
Ràng buộc
- Cho phép cung lặp và khuyên tự nối.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 1 4 2 5 |
5 | Có thể dùng tối đa màu. Chẳng hạn tô đỉnh màu và đỉnh màu ; đỉnh màu và đỉnh màu ; đỉnh tô màu bất kỳ. |
| 4 5 1 2 2 3 3 1 2 4 4 1 |
3 | Chu trình có độ dài nên phải là ước của . Với : tô lần lượt màu và màu . |
| 4 4 1 1 1 2 2 1 1 2 |
1 | Cung khuyên đòi hỏi màu đỉnh bằng màu kế tiếp của chính nó, buộc . |
Bình luận