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] Đếm và liệt kê trạng thái chết

    Cho DFA M=(Q,Σ,δ,q0,F)M=(Q,\Sigma,\delta,q_0,F)M=(Q,Σ,δ,q0​,F). Một trạng thái sss là trạng thái chết (dead/trap) nếu từ sss không thể đi tới bất kỳ trạng thái chấp nhận nào.

    Hình thức: sss chết nếu ∀w∈Σ∗: δ^(s,w)∉F\forall w\in\Sigma^*:\ \hat\delta(s,w)\notin F∀w∈Σ∗: δ^(s,w)∈/F.

    Hãy đếm và liệt kê các trạng thái chết theo thứ tự tăng dần. Thuật toán: BFS ngược từ tập FFF trên đồ thị chuyển; trạng thái không tới được FFF là trạng thái chết.

    Ví dụ: trạng thái bẫy gom các bước chuyển không hợp lệ chính là trạng thái chết.

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

      Dòng 1: số nguyên QQQ — số trạng thái (đánh số 0..Q−10..Q-10..Q−1). Dòng 2: các ký tự bảng chữ cái Σ\SigmaΣ, phân tách bởi dấu cách. Dòng 3: trạng thái bắt đầu q0q_0q0​. Dòng 4: số trạng thái chấp nhận FFF rồi danh sách các trạng thái chấp nhận (cùng dòng, cách nhau dấu cách). Tiếp theo Q×∣Σ∣Q\times|\Sigma|Q×∣Σ∣ dòng, mỗi dòng p a q nghĩa là δ(p,a)=q\delta(p,a)=qδ(p,a)=q.

    • Ràng buộc đầu vào:

      1≤Q≤10001 \le Q \le 10001≤Q≤1000, 1≤∣Σ∣≤261 \le |\Sigma| \le 261≤∣Σ∣≤26.

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

      Dòng 1: số trạng thái chết. Dòng 2: danh sách các trạng thái chết tăng dần (cách nhau dấu cách); nếu không có in dòng trống.

    Ví dụ:

    Đầu vào:

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

    Đầu ra:

    2
    1 2

    Giải thích:

    F={0}. Trạng thái 1 chỉ quay về 1, trạng thái 2 chỉ quay về 2; cả hai không tới được 0 -> chết. Đáp án: 1 và 2.

    Đang tải editor...