只是幫助自己記憶一下。
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...