wenbao與網路流

2022-04-17 04:20:51 字數 1330 閱讀 4575

最大流(推薦部落格

不斷增廣

sap模板

1

const

int maxn = 20010;//

點數的最大值

2const

int maxm = 880010;//

邊數的最大值

3const

int inf = 0x3f3f3f3f;4

5struct

nodeedge[maxm];

9int

tol;

10int

head[maxn];

11int

dep[maxn];

12int gap[maxn];//

gap[x]=y :說明殘留網路中dep[i]==x的個數為y

1314

int n;//

n是總的點的個數,包括源點和匯點

1516

void

init()

2021

void addedge(int u, int v, int

w)33

34void bfs(int start, int

end)53}

54}5556

int sap(int start, int

end)

73for(i = 0; i < top; i++)

77 res +=temp;

78 top =inser;

79 u = edge[s[top]].from;80

}81if(u != end && gap[dep[u]-1] == 0)//

出現斷層,無增廣路

82break;83

for(i = cur[u]; i != -1; i =edge[i].next)

84if(edge[i].cap != 0 && dep[u] == dep[edge[i].to] + 1)85

break;86

if(i != -1

)else98}

99 --gap[dep[u]];

100 dep[u] = min+1

;101 ++gap[dep[u]];

102if(u != start) u = edge[s[--top]].from

;103

}104

}105

return

res;

106 }

只有不斷學習才能進步!

wenbao與拓撲排序

dfs 小資料map存圖 1 intmark maxn map maxn maxn aim maxn cot 2bool dfs intx 9 10 mark x 1 11 aim cot x 12return true 13 14inttopo 21 22return true 23 大資料鄰接表...

wenbao與鄰接表

結構體儲存 1 struct edge 2edge maxn 5int head maxn 6void addedge int x,int y,int val 7 呼叫1 void use int x 7 vector儲存 1 include 2 include 3 struct edge8 9 v...

wenbao與擴充套件kmp

給定兩個字串s和t 長度分別為n和m 下標從0開始,定義extend i 等於s i s n 1 與t的最長公共字首的長度,求出所有的extend i next i t i t m 1 與t的最長公共字首長度 extend i s i s n 1 與t的最長公共字首的長度。1 c c 模板 2 in...