Đồ Thị Gần Không Chu Trình
Đề bài
Mô tả
Cho một đồ thị có hướng gồm đỉnh và cạnh (mỗi cạnh chỉ đi được theo một chiều). Bạn được phép xoá nhiều nhất một cạnh khỏi đồ thị.
Hỏi sau thao tác đó, đồ thị có thể trở thành đồ thị có hướng không chu trình (DAG) hay không? Một đồ thị có hướng được gọi là không chu trình nếu nó không chứa bất kỳ chu trình nào (một đường đi khác rỗng bắt đầu và kết thúc tại cùng một đỉ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, mỗi dòng chứa hai số nguyên và (), mô tả một cạnh có hướng từ tới .
Mỗi cặp có thứ tự xuất hiện nhiều nhất một lần (tức là có nhiều nhất một cạnh có hướng từ tới ).
Dữ liệu ra
In ra YES nếu có thể biến đồ thị thành DAG bằng cách xoá nhiều nhất một cạnh, ngược lại in ra NO.
Ràng buộc
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 1 2 2 3 3 2 3 1 |
YES | Có hai chu trình: và . Cả hai đều đi qua cạnh , nên xoá cạnh này là đủ để đồ thị trở thành DAG. |
| 5 6 1 2 2 3 3 2 3 1 2 1 4 5 |
NO | Đồ thị chứa nhiều chu trình lồng nhau: , . Xoá một cạnh bất kỳ vẫn còn ít nhất một chu trình. |
Bình luận