Hệ ràng buộc kéo theo
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Trong một hệ thống suy luận logic, ta có \(N\) mệnh đề cơ bản và M quy tắc suy luận. Mỗi quy tắc có dạng "nếu a đúng thì b đúng" (ký hiệu \(a \Rightarrow b\)), trong đó mỗi vế là một mệnh đề hoặc phủ định của mệnh đề.
Hãy xác định xem có tồn tại cách gán giá trị đúng/sai cho các mệnh đề cơ bản sao cho tất cả các quy tắc suy luận đều được thỏa mãn hay không.
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên \(N\) và M (\(1 \le N \le 10^5, 1 \le M \le 2 \cdot 10^5\)).
- \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(a_i, b_i\) (\(-N \le a_i, b_i \le N, a_i \neq 0, b_i \neq 0\)). Một số dương x nghĩa là "mệnh đề x", số âm \(-x\) nghĩa là "phủ định của mệnh đề \(x\)". Quy tắc: nếu vế trái đúng thì vế phải đúng.
Định dạng đầu ra
- In ra
YESnếu có cách gán thỏa mãn,NOnếu không.
Ví dụ
Input:
3 4
1 2
-1 3
2 -3
-2 3
Output:
YES
Ràng buộc & Subtasks
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | 40% | \(N, M \le 100\) |
| 2 | 60% | \(N, M \le 10^5\) |
Nhận xét