哦 写模板的时候没写好
也可以看自己的sum有没有每次操作都减掉一个k
by little_kongbai @ 2022-12-04 16:43:27
1
```cpp
int dfs(int u,int sum){
if(u==t)return sum;
int k,res=0;
vis[u]=1;
for(int i=head[u];i;i=e[i].next){
int v=e[i].to;
if(!vis[v]&&
e[i].w&&dis[v]==dis[u]+e[i].c){
k=dfs(v,min(sum,e[i].w));
res+=k;ret+=e[i].c*k;sum-=k;
e[i].w-=k,e[i^1].w+=k;
}
}
vis[u]=0;
return res;
}
```
2
```cpp
int dfs(int u,int sum){
if(u==t)return sum;
int k,res=0;
vis[u]=1;
for(int i=head[u];i;i=e[i].next){
int v=e[i].to;
if(!vis[v]&&
e[i].w&&dis[v]==dis[u]+e[i].c){
k=dfs(v,min(sum-res,e[i].w));
res+=k;ret+=e[i].c*k;
e[i].w-=k,e[i^1].w+=k;
}
}
vis[u]=0;
return res;
}
```
by little_kongbai @ 2022-12-04 16:44:29
不用记`vis`,直接跑最短路径树,就不会死循环了
by ssilrrr @ 2023-01-16 17:20:49