萌新刚学OI,求助最大流

P3376 【模板】网络最大流

UperFicial @ 2021-04-07 12:30:25

我建图用的链式前向星,是这么写的:

inline void add_edge(int u,int v,ll w)
{
    edge[++tot].nxt=head[u];
    head[u]=tot;
    edge[tot].to=v;
    edge[tot].cost=w;
    return;
}

当我初始 \text{tot=0} 时会 \texttt{\color{red}WA} 掉,但当初始为 1 的时候就 \texttt{\color{green}AC} 了,求问这是为什么啊,以前写图论的题也都是初始为 0 啊?


by 幻影星坚强 @ 2021-04-07 12:35:23

你找反向边是通过异或一找的 @UperFicial


by iorit @ 2021-04-07 12:35:59

初始为1才能用i^1访问反边啊/yiw


by zimujun @ 2021-04-07 12:36:30

@UperFicial 你一次加了两条边,取反边的时候是直接用的 i ^ 1,那么要是 tot = 0 的话边是这么对应的

1 2
3 4
5 6

但是 1 ^ 1 = 0, 2 ^ 1 = 3

懂了吗


by xzggzh1 @ 2021-04-07 12:37:00

你找反向边是通过异或一找的 @UperFicial

异或 1 相当于 是 0,1 / 2,3/4,5 匹配,显然要么编号从 0 开始 ,要么从 2 开始


by UperFicial @ 2021-04-07 12:39:43

@xzggzh1 @zimujunqwq @panshuo @幻影星坚强 谢谢神仙!


by Prean @ 2021-04-07 12:50:36

之前这么写能AC的原因是数据过水,根本没动过反向边。。。

别问我咋知道的,我也背坑过


|