poj 1094 拓撲排序

2021-06-18 10:28:15 字數 570 閱讀 7042

題意:給出n個字母的一些大小關係,判斷能否拓撲排序或者出現了矛盾,如果是這兩種情況要求出到第幾組關係時就可以得到。否            則就是所給資料不完全。

思路:每讀一組關係進行一次拓撲排序,如果排序成功或者出現矛盾記錄第幾組關係之後就不拓撲排序了,直接讀完資料就行了。

#include#include#includeconst int n=30;

using namespace std;

int map[n][n],insep[n],num,p[n],indep[n],cp[n],n,k;

int tuopusort()

} if(k!=n) return 0;//有環

else if(pp==-1)return -1;//排序不唯一

else return 1;//排序唯一 }

int main()

} if(flag==-1)

else if(flag==1)

{ printf("sorted sequence determined after %d relations: ",j);

for(i=0;i

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...