學習 拓撲排序

2022-05-12 07:28:20 字數 515 閱讀 9598

這個人太菜了都要csp了才學拓撲排序

給定一張有向無環圖,若乙個由圖中所有點構成的序列a滿足邊(x,y),x在a中都出現在y之前,則稱a是該有向無環圖頂點的乙個拓撲序。求解a的過程就叫做拓撲排序。

——藍書·lyd

選擇入度為0的點,然後把他連向的點入讀減1就行了

過程:1.建立空的序列a

2.預處理所有點的入度,把

入度為0的點入隊

3.取隊頭x,把x放在a的末尾

4.遍歷從x連出的y點,並把y的入度減1,如果這是y的入度為0,入隊

5.迴圈3,4直至隊列為空,得到a序列

①判環②處理圖上有明顯先後順序要求的題目

luogu p1038 神經網路

luogu p2661 資訊傳遞

1

void

topsort()

7while(!q.empty())14}

15 }

topsort

拓撲排序學習筆記

1.拓撲排序只對於有向無環圖而言 directed acyclic graph簡稱dag 2.在乙個有向無環圖中,若a b c,則拓撲序列為 a,b,c 也就是說如果一條邊a b,那麼在拓撲序列裡a就在b前面 知道了這兩點,那麼就可以來求拓撲序列了 首先,我們知道在dag中一定存在乙個入度為0的點,...

拓撲排序學習筆記

1.輸出字典序最小的拓撲序 在bfs演算法方法中用優先佇列 2.題意 n個點m條邊 dag 求刪去每個點後1 n最短路 n,m 3e5 做法 首先在dag中可以跑拓撲排序,跑完拓撲排序有什麼好處呢?拓撲序上的乙個點k作為劃分線,前半段的點的集合設為x,後半段點的集合設為y,那麼從點1到x中的任意乙個...

學習筆記 拓撲排序

有向圖的拓撲序列 給定乙個n個點m條邊的有向圖,點的編號是1到n,圖中可能存在重邊和自環。請輸出任意乙個該有向圖的拓撲序列,如果拓撲序列不存在,則輸出 1。若乙個由圖中所有點構成的序列a滿足 對於圖中的每條邊 x,y x在a中都出現在y之前,則稱a是該圖的乙個拓撲序列。輸入格式 第一行包含兩個整數n...