Giải bài toán 2-SAT bằng thuật toán Tarjan thành phần liên thông mạnh
Cho hệ ràng buộc gồm N biến mệnh đề x1, x2, …, xN và M mệnh đề dạng (u ∨ v), trong đó u và v là các biến hoặc phủ định của biến:
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: tarjan scc, graph representation, implication graph.
Nội dung đề bài
Mục tiêu kiến thức
- Biểu diễn biểu thức 2-CNF (xi ∨ xj) thành hai cung suy diễn: (neg xi ⇒ xj) và (neg xj ⇒ xi) trên Đồ thị suy diễn (Implication Graph).
- Sử dụng thuật toán Tarjan tìm các Thành phần liên thông mạnh (SCC) trong O(V + E).
- Kiểm tra điều kiện thỏa mãn: Hệ có nghiệm khi và chỉ khi với mọi biến x, x và neg x không cùng thuộc một SCC.
- Gán giá trị chân lý hợp lệ dựa trên thứ tự tô-pô ngược của các SCC.
Mô tả bài toán
Cho hệ ràng buộc gồm N biến mệnh đề x1, x2, …, xN và M mệnh đề dạng (u ∨ v), trong đó u và v là các biến hoặc phủ định của biến:
- Số nguyên dương k đại diện cho biến xk.
- Số nguyên âm -k đại diện cho phủ định neg xk.
Hãy kiểm tra xem có tồn tại phép gán giá trị chân lý (true / false) cho tất cả N biến sao cho mọi mệnh đề đều nhận giá trị true hay không. Nếu có, in YES và một bộ giá trị chân lý cho các biến; nếu không, in NO.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng 1: Gồm 2 số nguyên N và M (1 ≤ N, M ≤ 105).
- M dòng tiếp theo: Mỗi dòng gồm 2 số nguyên u, v (-N ≤ u, v ≤ N, u, v ≠ 0).
Output
- Dòng 1: In
YESnếu có nghiệm, ngược lại inNO. - Nếu
YES, dòng 2 in N số nguyên 0 hoặc 1 cách nhau bởi dấu cách (số thứ i bằng 1 nếu xi = true, bằng 0 nếu xi = false).
Ràng buộc
- 1 ≤ N, M ≤ 105.
- Thời gian chạy: 1000ms.
- Bộ nhớ tối đa: 256MB.
Ví dụ 1
Input
3 3
1 -2
2 3
-1 -3Output
YES
1 1 0Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
