又窮自動機的構造

2022-05-28 17:51:11 字數 2520 閱讀 5143

#include

#include

#include

int main()

;

char vt[30]=);

scanf("%d",&n);

line=n;

for(i=0;i<30;i++)

for(j=0;j<30;j++)

printf("請輸入文法:\n");

for(i=0;i='a'||(p[i][j]<='9'&&p[i][j]>='0'))

}

if(flag==0)

}

//終結符放在陣列vt中

if(p[i][j]<='z'&&p[i][j]>='a')

}

if(flag==0)

}

}

}

//把規則右部分分離,放入陣列q中

count=0;

k=0;

for(i=0;i='a')||(p[i][j]<='z'&&p[i][j]>='a')||(p[i][j]<='9'&&p[i][j]>='0'))

else

}

count++;

k=0;

}

//判斷是確定的還是非確定的有窮狀態自動機,並進行前半部分列印

//判斷依據:q陣列中每一行字串是否相同

flag=0;

for(i=0;i='a')||(p[i][j]<='z'&&p[i][j]>='a')||(p[i][j]<='9'&&p[i][j]>='0'))

if(p[i][j]=='l')

}

}

count++;

k=0;

}

printf("\n");

//列印m後部分

printf("m:\n");

l=0;

while(vn[l]!='\0')

}

printf("}\t");

l++;

}

printf("\n");

l=0;k=0;

while(vt[k]!='\0')

}

printf("}\t");

l++;

}

k++;

printf("\n");

}

system("pause");

自動機 構造

題目大意 給你乙隻n個點的確定自動機,和字符集大小m,每個節點都恰好m條轉移邊。構造乙個字串長度不超過1e6,使得從任意節點出發接收這個狀態回到達1號點,n 100,m 26。spj。題解 其實是給你乙個nfa然後求一條路徑,然後我一開始傻叉了,還真的傻了吧唧的寫了個nfa轉dfa以為可過,最後發現...

有窮的自動機構造

include include include intmain 存放非終結符號 char vt 30 存放終結符號 printf 請輸入規則個數 scanf d n line n for i 0 i 30 i 給字串陣列p,q全部賦值為 0 for j 0 j 30 j printf 請輸入文法 n...

有窮的自動機構造

include include include int main 存放非終結符號 char vt 30 存放終結符號 printf 請輸入規則個數 scanf d n line n for i 0 i 30 i 給字串陣列p,q全部賦值為 0 for j 0 j 30 j printf 請輸入文法 ...