Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Automat & NN hình thức] Kiểm tra hai DFA tương đương

    Cho hai DFA đầy đủ trên cùng bảng chữ cái. Hai DFA tương đương nếu chúng chấp nhận đúng cùng một ngôn ngữ. Duyệt đồng thời cặp trạng thái (x,y) bắt đầu từ (s1,s2); nếu tồn tại cặp đạt được mà một bên chấp nhận còn bên kia thì không, hai DFA khác nhau.

    Bảng chữ cái gồm k ký tự đầu tiên: a, b, c, … (chỉ số j ứng với ký tự chr(97+j)).

    Ví dụ:

    Input:

    2 2
    1 0
    0 1
    0
    1 1
    3 2
    1 0
    2 1
    1 2
    0
    2 1 2
    

    Output:

    NO
    
    • Định dạng đầu vào:

      Hai khối DFA liên tiếp, mỗi khối theo định dạng: Khối mô tả DFA gồm:

      • Dòng 1: hai số n k — số trạng thái (đánh số 0..n-1) và kích thước bảng chữ cái.
      • n dòng tiếp theo: dòng i gồm k số, số thứ j là trạng thái đích khi ở trạng thái i đọc ký tự thứ j.
      • Dòng tiếp: trạng thái bắt đầu s.
      • Dòng cuối: f rồi f số — tập trạng thái chấp nhận (nếu f=0 chỉ có số 0). Hai DFA có cùng kích thước bảng chữ cái k.
    • Ràng buộc đầu vào:

      1 ≤ n1,n2 ≤ 1000, 1 ≤ k ≤ 26.

    • Định dạng đầu ra:

      In YES nếu hai DFA tương đương, ngược lại NO.

    Ví dụ:

    Đầu vào:

    2 2
    1 0
    0 1
    0
    1 1
    3 2
    1 0
    2 1
    1 2
    0
    2 1 2

    Đầu ra:

    NO

    Giải thích:

    Cả hai đều chấp nhận chuỗi có số ký tự `a` lẻ (DFA thứ hai chỉ dư một trạng thái tương đương). Nên tương đương → YES.

    Đang tải editor...