关于Dinic是否必须使用【链式前向星】

P3376 【模板】网络最大流

wangbinfeng @ 2023-12-20 20:01:12

rt,我不喜欢用链式前向星(我一般用邻接表存图),弱校自学网络流,网上搜到的视频和题解都是链式前向星,其中有一个视频甚至说出了“dinic必须使用链式前向星”,因此,求助一下这句话是否正确。

缩句:Dinic是否必须使用链式前向星存图,如果不是,是否可以使用邻接表。

附加题:求推荐分层图讲解视频或blog,bdfs无果


by wangbinfeng @ 2024-01-03 23:55:41

@__Cby___ 这么古老的帖子您都能发现

迷,我学的书里邻接表是我这种写法。书是各个大学都用的那种。编者我也不知道,毕竟现在大学教材各种抄袭。

具体哪种对我现在也不太有心情争,思路其实大同小异,也不好说谁对谁错。

顺便扔个blog,正确性存疑,但至少可以说明我这种写法一般也是邻接表。


by wangbinfeng @ 2024-01-03 23:56:33

@__Cby___ 两种区别不就是一个手写链表,一个直接用vector,本质一模一样。反而链式前向星差别还能大一点……


by wangbinfeng @ 2024-01-03 23:58:31

@__Cby___ 这种名词本来也没有对错,就是习惯问题。然后我认为并没有标准,名字只是第一个翻译者定的,然后习惯了

如果有官方文件那我承认官方文件。


by toolazy @ 2024-01-04 21:37:54

我都是直接用 vector 大法(从来没写过前向星qwq我太蒻了

edge 我都这样打:

struct edge {
    int to, cap, rev;
};

void adde(int a, int b, int cap) {
    g[a].push_back({b, cap, g[b].size()});
    g[b].push_back({a, 0, g[a].size() - 1});
}

到时候查反向边就可以 O(1) 啦~(但是u1s1前向星常数比 vector 小很多耶


上一页 |