poj 1094(拓撲排序)

2022-08-13 12:06:13 字數 780 閱讀 5105

題意:給你m個字母,有n個判斷語句。求在哪個語句就可以判斷出這個是不是乙個環,或者在哪個語句可以判斷出這些字母的排序規則,或者就是不能確定。

思路:每輸入一次,進行一次排序,看會不會構成環或者已經可以確定了判斷規則。

1 #include 2 #include 34

char ans[30];5

6int indegree[27];7

8bool mp[26][26];9

10int topsort(int

n)11

20if(m==0) return

0; //如果全部的度都是0的話,那麼說明有環。

21 ans[c++]=flag+'a'

;22if(m>1) l=-1

; //這個不能用return -1,因為成環不一定是要成乙個大環,可以幾個字母成乙個小環。

23 tmp[flag]--;

24for(j=0;j)

25if(mp[flag][j]) tmp[j]--;26}

27return

l;28}29

30int

main()

3152

else

if(s==1)53

60}61if(!sign)

62 printf("

sorted sequence cannot be determined.\n");

63}64return0;

65 }

POJ 1094 拓撲排序

文章大意是將n個字母排序 n 26 最終必須排成鍊錶式的輸出 一旦確定或者出現環,記錄當前步數,後續輸入無視 加個拓撲排序判斷圖的總結 1 如果輸入的有向圖中的點,不存在入度為0的點,則存在迴路,反過來則不成立 2 如果入隊的點的個數小於輸入的點的個數,則肯定存在迴路 3 如果存在的入度為零的點大於...

拓撲排序 poj1094

此題題目有點小問題,那也是很多人ac不了的原因 問題是,當給定的前k項條件能夠確定出大小順序時,即便k項之後出現了矛盾條件,輸出也應該是sorted sequence determined after k relations 後面再輸出排序好的序列!include include using nam...

POJ 1094 拓撲排序)

拓排 各種判 program p1094 type map3 record indegree array a z of longint map array a z 1.26 of char outdegree array a z of longint end var n,m,i,j,num,valu...