Dinic 样例死循环求调

P3376 【模板】网络最大流

当前弧优化要求每次 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


| 下一页