当前弧优化要求每次 dfs 之前都要重置 cur 数组
by vzcx_host @ 2023-12-24 11:58:29
@[Industrial_banana](/user/193198) 改了,貌似还是死循环
by luqyou @ 2023-12-24 11:59:45
dinic函数应该这么写
```cpp
ll dinic() {
ll res=0;
while(bfs()) {
for(int i=1;i<=n;i++) cur[i]=head[i];
ll flow;
while(flow=dfs(s,INF)) res+=flow;
}
return res;
}
```
by DANNNsth @ 2023-12-24 12:14:59
@[luqyou](/user/464732)
by DANNNsth @ 2023-12-24 12:16:20
在dfs函数中
```cpp
k=dfs(e[x].v,min(nf,e[x].w));
```
应写成
```cpp
k=dfs(e[x].v,min(res,e[x].w));
```
by DANNNsth @ 2023-12-24 12:20:04
@[DANNNsth](/user/369411) 改了,but还是死循环
by luqyou @ 2023-12-24 12:25:58
在dfs函数中
```for(int i=cur[u];i<G[u].size();i++){```应该为```for(int i=cur[u];i<G[u].size()&&nf;i++){```
by DANNNsth @ 2023-12-24 12:37:45
@[DANNNsth](/user/369411) for循环里面有判`if(nf==0) break;`
by luqyou @ 2023-12-24 14:42:10
@[luqyou](/user/464732) 等一下
by vzcx_host @ 2023-12-25 10:35:42
@[luqyou](/user/464732) 你 bfs 时 q 没清
by vzcx_host @ 2023-12-25 10:36:11