湖大OJ 實驗E 可判定的DFA的空問題

2022-05-07 01:57:06 字數 1880 閱讀 5519

實驗e----可判定的dfa的空問題

time limit:1000ms,special time limit:2500ms,memory limit:32768kb

total submit users:138,accepted users:130

problem 13122 :no special judgement

problem description

edfa= 證明:edfa是可判定的語言。 實驗方法:編寫乙個演算法/程式,對於任意給定的輸入(/確定性有限狀態自動機dfa),可以判定edfa。

input

有多個測試序列,測試結束於測試檔案結束;

每個測試序列相對應乙個dfa,其第一行為2個正整數n,m,表示有n個狀態,狀態集q=。預設起始狀態為q0,字符集有m個字元。0 < n,m ≤100。隨後n行,每行m個空格隔開的整數δij,( 0 ≤ i < n , 0 ≤ j < m )表示dfa的狀態轉移函式。δij表示第i個狀態在輸入j(字母表第j個字元)時,變為第δij個狀態。每個dfa的最後一行,首先乙個整數f,表示接受狀態數,然後f個空格隔開的整數fk(0 ≤ k < f),是所有接受狀態的編號。其中 0 ≤ δij,fk

< n。

output

對於每個輸入的dfa,輸出」yes」,如果該dfa確實不接受任何串;否則,輸出」no」。 

sample input

1 2

0 01 0

1 20 0

0

sample output

no

yes

judge tips

樣例中2個dfa,第乙個是接受所有輸入的dfa,第二個是拒絕所有輸入的dfa,所以,第乙個dfa輸出」no」,而第二個是」yes」。

a:是否接受w的問題。adfa是可判定的。anfa是可判定的。ares是可判定的。edfa是可判定的。eqdfa是可判定的。p100。核心思想:圖靈機跟蹤dfa的狀態和當前位置,狀態和位置的變化由轉移函式決定。

b:dfa不接受任意串存在以下幾種情況:沒有接受狀態、接受狀態獨立、接受狀態和起始狀態不在同乙個團中;基於以上三種情況編寫**

不要去根據dfa可能接受某乙個串去判斷乙個dfa大的可判定性,而是從相反的方向來考慮問題:即判斷dfa是否拒絕所有的串。dfa拒絕所有的串只可能存在以上三種情況。

#include#include#include#includeusing namespace std;

bool vis[110];

bool ac[110];

int num[110][110];

int n, m, f, p, cnt;

bool dfs(int k)

for(int i = 0; i < m; i++)

if(!vis[num[k][i]] && dfs(num[k][i]))

return 0;

}int main()

if(f)

if(dfs(0))

printf("no\n");

else

printf("yes\n");

else

printf("yes\n");

}return 0;

}

湖大寢室被盜

湖大校園非常混亂。請看到這篇文章的還未上湖南大學,卻勵志要上湖南大學的小同學們想想清楚。因為是開放式校園,所以和外面的人接觸很多。一棟宿舍裡人來人往,非常多人 還大多是外面的人 舍管阿姨根本不清楚哪個是哪個。財產安全問題是乙個非常重要的問題。所以如果家裡一貧如洗,可以來這裡。小李子就是這樣乙個人。在...

湖大寢室被盜

湖大校園非常混亂。請看到這篇文章的還未上湖南大學,卻勵志要上湖南大學的小同學們想想清楚。因為是開放式校園,所以和外面的人接觸很多。一棟宿舍裡人來人往,非常多人 還大多是外面的人 舍管阿姨根本不清楚哪個是哪個。財產安全問題是乙個非常重要的問題。所以如果家裡一貧如洗,可以來這裡。小李子就是這樣乙個人。在...

C 練習 四大湖

總時間限制 1000ms 記憶體限制 65536kb 描述 我國有4大淡水湖。a說 洞庭湖最大,洪澤湖最小,鄱陽湖第三。b說 洪澤湖最大,洞庭湖最小,鄱陽湖第二,太湖第三。c說 洪澤湖最小,洞庭湖第三。d說 鄱陽湖最大,太湖最小,洪澤湖第二,洞庭湖第三。已知這4個湖的大小均不相等,4個人每人僅答對乙...