[Buổi 28][DAG & Sắp xếp tô-pô][HW] Bài 2: Vòng phụ thuộc trực tiếp
Vòng phụ thuộc trực tiếp
Bối cảnh và bài toán
Một hệ thống build có các dependency một chiều giữa các module. Nếu tồn tại chu trình, quá trình build sẽ không thể khởi động theo thứ tự hợp lệ.
Yêu cầu
Kiểm tra đồ thị phụ thuộc có chu trình có hướng hay không.
Input
Dòng đầu n, m; tiếp theo m cạnh a -> b.
Output
In "YES" nếu có chu trình, ngược lại "NO".
Ràng buộc
1 <= n <= 2*10^50 <= m <= 2*10^5## Chấm điểm | Subtask | Điểm | Điều kiện | Official tests | |---|---:|---|---| | S1 | 40 | n <= 200, m <= 500 (nếu có m) | 01–08 | | S2 | 60 | Không có ràng buộc bổ sung | 09–20 |
Ví dụ 1
Input
4 5
1 3
2 1
2 4
3 2
3 4
Output
YES
Giải thích. Nếu topo process không lấy được đủ n đỉnh thì phần còn lại chứa một chu trình có hướng.
Ví dụ 2
Input
4 3
1 2
2 3
3 4
Output
NO
Giải thích. Nếu topo process không lấy được đủ n đỉnh thì phần còn lại chứa một chu trình có hướng.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M09-B28-HW02 |
| Buổi | B28 |
| Loại bài | HOMEWORK |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 35 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: Phỏng theo / Adapted from CSES Round Trip II. Bản FULLHOUSE DEV đã biên tập lại bối cảnh/format theo phạm vi khóa học.
Comments