为什么tot的值从1改成0就会炸

P3376 【模板】网络最大流

是要把e[1]空出来啊,这样 `i` 和 `i^1` 才是一对双向边
by lzyqwq @ 2023-10-16 11:47:48


因为你的链式前向星(链表)判断达到链表结尾时是 `for(int i=head[x];i;i=e[i].nxt)` ,是不能有编号为0的边的。除非你初始把head全赋值成 -1才行。
by hyj0824 @ 2023-10-16 12:02:49


```cpp e[i].val-=k; e[i^1].val+=k; ``` 因为上面这个东西,2^1=3,3^1=2。你的反向边就靠这个
by Zikl @ 2023-10-16 22:16:30


感谢,找半天错看到你这个才知道错哪了
by Kikcer @ 2023-11-28 20:31:59


|