Một công thức ở dạng chuẩn hội (CNF) là hội (AND) của nhiều mệnh đề (clause), mỗi mệnh đề là tuyển (OR) của các literal. Mỗi literal là một biến xi hoặc phủ định ¬xi.
Một phép gán giá trị cho n biến thỏa công thức nếu mọi mệnh đề đều đúng (mỗi mệnh đề có ít nhất một literal đúng).
Cho n biến và m mệnh đề, hãy đếm số phép gán 0/1 cho các biến làm công thức đúng.
Quy ước literal: số nguyên khác 0; giá trị dương i nghĩa là xi, giá trị âm −i nghĩa là ¬xi (biến đánh số 1..n).
Ví dụ: n=2, mệnh đề 1 2 (x1∨x2): có 3 phép gán thỏa trong 4.
Dòng 1: n và m. m dòng tiếp theo: mỗi dòng liệt kê các literal (số nguyên khác 0) của một mệnh đề.
1≤n≤20, 1≤m≤100, mỗi mệnh đề có ≤n literal.
Một dòng: số phép gán thỏa công thức.
Ví dụ:
Đầu vào:
2 1
1 2
Đầu ra:
3
Giải thích:
Đang tải editor...