Thành phần chu trình
Đề bài
Mô tả
Cho một đồ thị vô hướng gồm đỉnh và cạnh. Nhiệm vụ của bạn là đếm số thành phần liên thông là chu trình.
Một thành phần liên thông được gọi là một chu trình nếu có thể sắp xếp lại các đỉnh của nó thành một dãy sao cho đỉnh thứ nhất nối với đỉnh thứ hai bằng một cạnh, đỉnh thứ hai nối với đỉnh thứ ba, ..., đỉnh cuối cùng nối với đỉnh đầu tiên, và thành phần đó không chứa bất kỳ cạnh nào khác ngoài các cạnh vừa mô tả. Theo định nghĩa, một chu trình có ít nhất ba đỉnh.
Đồ 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 mỗi cặp đỉ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 mô tả một cạnh nối hai đỉnh và .
Dữ liệu ra
In ra một số nguyên duy nhất: số thành phần liên thông là chu trình.
Ràng buộc
- và
- Đồ thị không có cạnh lặp.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 4 1 2 3 4 5 4 3 5 |
1 | Thành phần {3, 4, 5} tạo thành tam giác nên là một chu trình. Thành phần {1, 2} chỉ là một cạnh nên không phải chu trình. |
| 17 15 1 8 1 12 5 11 11 9 9 15 15 5 4 13 3 13 4 3 10 16 7 10 16 7 14 3 14 4 17 6 |
2 | Hai thành phần là chu trình: {5, 11, 9, 15} (chu trình dài 4) và {7, 10, 16} (tam giác). |
Bình luận