两种写法有什么区别?请问还有很好的写法或者哪里可以优化吗?
inline int dinic(int u,int sum){
if(u==t) return sum;
int ret=0;
for(int i=now[u];i;i=nxt[i]){
now[u]=i;
int v=ver[i];
if(val[i]&&d[v]==d[u]+1){
int k=dinic(v,min(sum-ret,val[i]));
val[i]-=k;val[i^1]+=k;
ret+=k;
if(ret==sum) return sum;
}
}
return ret;
}
inline int dinic(int u,int sum){
if(u==t) return sum;
int k,res=0;
for(int i=now[u];i&∑i=nxt[i]){
now[u]=i;
int v=ver[i];
if(val[i]&&d[v]==d[u]+1){
k=dinic(v,min(sum,val[i]));
if(k==0) d[v]=inf;
val[i]-=k;
val[i^1]+=k;
res+=k;
sum-=k;
}
}
return res;
}