網路流的部分優化

2021-09-29 15:35:14 字數 1331 閱讀 4687

只是幫助自己記憶一下。

isap應該是一種複雜度比較優秀的最大流演算法。

具體優化分為兩部分,都是基於dinic之上的。

1.

1.1.

當前弧優化,這種優化比較顯然,就是對於每一次流,每條邊一定是只經過一次的,那麼這樣就可以將每條流過的變在鏈式前向星中刪掉。

2.

2.2.

高階版分層圖優化。這個現在不是很理解。不過只留dep

[u]=

=dep

[v]+

1dep[u] == dep[v] + 1

dep[u]

==de

p[v]

+1這部分比較顯然,不過用gap

gapga

p優化的每次將dep

[u]+

+dep[u] ++

dep[u]

++並不是很理解,暫時留個坑,只能感性理解。

#include

#include

using

namespace std;

const

int n =

1e4+10;

const

int m =

1e5+10;

const

int inf =

1e9+7;

struct edge f[m <<1]

;int n,m,s,t,gap[n]

,dep[n]

,head[n]

,stu[n]

,ans,cnt;

queue <

int> q;

intread()

while

(ch >=

'0'&& ch <=

'9')

return x * w;

}int

min(

int a,

int b)

void

add(

int u,

int v,

int w)

void

init()

}int

flo(

int u,

int mi)if(

!(-- gap[dep[u]])

) dep[s]

= n +1;

++ gap[

++ dep[u]

],head[u]

= stu[u]

;return flow;

}int

isap()

intmain()

網路流的幾個小優化

是不是覺得網路流的速度不盡人心?目錄優化1就是我們空間的優化,有時候我們打.other是不是打得心煩氣燥?我們可以在初始化時len 1,那麼以後要訪問k的other時只需要k 1就可以了,簡單來說就是二進位制最後一位由1變0,由0變1。同時,有時候一條邊的x也不大有用,所以我們一樣可以省去,所以,這...

網路流 EK演算法及其優化

今天上午我彷彿知道了什麼叫做網路流,這裡推薦一篇部落格,大家入門網路流的可以看一下這篇部落格,保證一看就懂!codevs 1993 include include include include using namespace std const int inf 0x7ffffff queue q ...

IO流部分總結

1 io流的分類 方向,輸入流 inputstream,reader 與輸出流 outputstream,writer 處理單元 位元組流 inputstream,outputstream 和字元流 reader,writer 是否直接與裝置相連 節點流 fileinputstream fileou...