poj1094 拓撲排序

2021-06-17 19:54:10 字數 939 閱讀 7210

拓撲排序的應用:

1、當前的輸入序列排序唯一,則輸出 sorted sequence determined after %d relations

2、當前輸入序列不唯一,檢查是否有環

3、全部輸入後,若排序唯一和有環,輸出1、2,否則輸出 sorted sequence cannot be determined

拓撲排序 每次選點入度為0的點唯一 則排序唯一

否則排序結果不唯一

若某次選擇點,不存在入度為0的點,則有環

#include #include int topo(int succ[26],int *inp,int *outp,int n,int *numbersucc,int *result)

} if (cnt==0) //沒有入度為0的點 說明存在環

return 2;

*(result+k) = firstnode;

in[firstnode] = -1; //已排好

k++; //k代表已經排好序的數量

if (k==n)

break;

for (i=0;i=0;j--)

printf("%c",result[j]+'a');

printf(".\n");

}else if (flag == 2)}}

} if (flag == 0)

printf("sorted sequence cannot be determined.\n");

} return 0;

}

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