inline int dfs(int u,int flow)
{
int rlow=0;
if(u==t)
{
return flow;
}
for(register int i=head[u];i;i=node[i].nxt)
{
int d=node[i].v;
if(node[i].val>0 && dep[d]==dep[u]+1)
{
if(flow=dfs(d,min(flow,node[i].val)))
{
node[i].val-=rlow;
node[i^1].val+=rlow;
return rlow;
}
}
}
return 0;
}
inline int Dinic()
{
int lowflow;
while(bfs()==true)
{
while(lowflow=dfs(s,INF))
{
maxflow+=lowflow;
}
}
return maxflow;
}
敢问上面的代码两个函数分别有什么用?能讲的详细点吗 (网上的看不懂)?