wangbinfeng @ 2023-12-20 20:01:12
rt,我不喜欢用链式前向星(我一般用邻接表存图),弱校自学网络流,网上搜到的视频和题解都是链式前向星,其中有一个视频甚至说出了“dinic必须使用链式前向星”,因此,求助一下这句话是否正确。
缩句:Dinic是否必须使用链式前向星存图,如果不是,是否可以使用邻接表。
附加题:求推荐分层图讲解视频或blog,bdfs无果
by wangbinfeng @ 2023-12-20 20:02:31
顺便,求解释以下第一篇题解中now
数组的含义。
by cjh20090318 @ 2023-12-20 20:04:34
你也许可以试着用邻接表?但是会发现很不好修改边权。
因为网络最大流涉及到修改一条边及其反向边的边权,邻接表不好操作。
如果你意志坚定可以试一下。
by wangbinfeng @ 2023-12-20 20:04:35
为了防止有人不知道邻接表具体指那种算法,附上其模板。
class edge{
public:
int to,val;
edge*next;
edge(int to,edge *next):next(next),to(to){}
};
class node{
public:
int dis;
edge*e;
node():e(nullptr),dis(0){}
void add(int to){e=new edge(to,e);}
}dat[2000009];
by IceKylin @ 2023-12-20 20:05:11
@wangbinfeng 一般来说,我个人会喜欢用 vector
存图。
by cmaths @ 2023-12-20 20:05:12
用前向星方便当前弧优化,用邻接表的话得记录当前遍历到出点的下标吧,应该也行
by IceKylin @ 2023-12-20 20:06:09
@wangbinfeng 具体可以参考最新一篇题解
by cmaths @ 2023-12-20 20:06:36
now 应该就是当前弧
by wangbinfeng @ 2023-12-20 20:06:49
@cjh20090318 @cmaths ……请问大佬可以帮我解释以下第一篇题解中now数组的含义吗?我现在正好卡在了这里
by wangbinfeng @ 2023-12-20 20:07:39
@IceKylin 请问方便说下vector
怎么存图吗?(顺便某个视频直接明说vector
做不了网络流,也不知道是真是假)
by cmaths @ 2023-12-20 20:07:44
就是说当前对于 u 点已经遍历到的边的编号