Cho hai DFA đầy đủ M1,M2 trên cùng bảng chữ cái và một phép toán op (AND = giao, OR = hợp). Xây dựng DFA tích nhận L(M1)∩L(M2) (nếu AND) hoặc L(M1)∪L(M2) (nếu OR), chỉ giữ các trạng thái tới được từ cặp bắt đầu. Hãy đếm số trạng thái tới được đó.
Trạng thái tích là cặp (p,q); chuyển (p,q)a(δ1(p,a),δ2(q,a)). Phép toán chỉ ảnh hưởng tập chấp nhận, không ảnh hưởng số trạng thái tới được.
Ví dụ: tích hai DFA 2 trạng thái có tối đa 4 trạng thái, nhưng số reachable có thể ít hơn.
Dòng đầu tiên: op là AND hoặc OR.
Sau đó là Đầu vào gồm hai DFA liên tiếp, mỗi DFA theo định dạng:
Dòng 1: số trạng thái Q (đánh số 0..Q−1).
Dòng 2: bảng chữ cái Σ (cách nhau dấu cách).
Dòng 3: trạng thái bắt đầu.
Dòng 4: số trạng thái chấp nhận rồi danh sách trạng thái chấp nhận (cùng dòng).
Tiếp theo Q×∣Σ∣ dòng p a q nghĩa là δ(p,a)=q (DFA đầy đủ — mọi cặp (p,a) có đúng một đích).
Hai DFA dùng chung bảng chữ cái (ghi lại trong từng khối).
1≤Qi≤300, 1≤∣Σ∣≤26.
In một số nguyên: số trạng thái tới được của DFA tích.
Ví dụ:
Đầu vào:
AND
2
0 1
0
1 0
0 0 0
0 1 1
1 0 1
1 1 0
2
0 1
0
1 1
0 0 1
0 1 0
1 0 1
1 1 1
Đầu ra:
4
Giải thích:
Đang tải editor...