拓撲排序學習筆記

2021-10-03 08:34:00 字數 501 閱讀 5698

1. 輸出字典序最小的拓撲序:在bfs演算法方法中用優先佇列

2.題意:

n個點m條邊 dag

求刪去每個點後1-n最短路

n,m 3e5

做法: 

首先在dag中可以跑拓撲排序,跑完拓撲排序有什麼好處呢?

拓撲序上的乙個點k作為劃分線,前半段的點的集合設為x,後半段點的集合設為y,那麼從點1到x中的任意乙個點的最短路,一定沒有經過k點;同理,從y中任意乙個點到n一定也沒經過k點。

那麼這道題只要做乙個預處理

1 .從1到其他點的最短路dis陣列

2. 以及在反圖上跑從n到其他點的dis2陣列

那麼去掉點k的最短路為min(w(u,v) + dis[u] + dis2[v]) (u為x集合的點, v為y集合的點,從中取min);

但這樣複雜度肯定有大問題。怎麼做呢,m條邊,對於每條邊w(u,v)我們將u,v之間的拓撲序的點區間取min(線段樹)就可以了,複雜度mlogn。

無**,找不到提交鏈結。

拓撲排序學習筆記

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

學習筆記 拓撲排序

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

拓撲排序 學習筆記

今天,我們來聊聊拓撲排序。拓撲排序,這個顧名思義似乎有點難。那就直接上定義吧 啥意思呢。比如這樣乙個dag 幾種可能的拓撲序是 也就是說,dag的拓撲序可能並不唯一。那麼,1 3 2 4 5 6 7是不是這張圖的拓撲序呢?答案是否定的,因為圖中存在 2 rightarrow 3 這條邊,那麼2必須出...