Cho NFA không epsilon N=(Q,Σ,δ,q0,F) và chuỗi w. Hãy đếm số đường đi khác nhau trong NFA tương ứng với việc đọc w và kết thúc tại một trạng thái chấp nhận.
Mỗi đường đi là một dãy trạng thái q0=s0,s1,…,s∣w∣ với si+1∈δ(si,wi+1) và s∣w∣∈F. Dùng quy hoạch động dp[s] = số đường đi đọc tới s.
Ví dụ: trong NFA mơ hồ, một chuỗi có thể có nhiều đường đi chấp nhận.
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 q0.
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.
Dòng 5: số bước chuyển T.
Tiếp theo T dòng, mỗi dòng p a q nghĩa là q∈δ(p,a) (NFA, có thể nhiều đích cho cùng (p,a)).
Dòng cuối: chuỗi w (có thể rỗng — dòng trống).
1≤Q≤200, 0≤∣w∣≤1000. Kết quả có thể lớn.
In một số nguyên: số đường đi chấp nhận khi đọc w.
Ví dụ:
Đầu vào:
3
a
0
1 2
4
0 a 1
0 a 2
1 a 2
2 a 2
aa
Đầu ra:
2
Giải thích:
Đang tải editor...