【悬关】求助关于网络流建反向边

学术版

Joker_Fish @ 2024-03-27 17:15:44

众所周知,反向边可以使用链式前向星并用^1操作快速找到反向边,但是我不想写链式前向星只想写vector怎么办


by small_john @ 2024-03-27 17:19:18

@Joker_Fish 会很麻烦,开个二维 map,然后记录每条边在 vector 中的编号


by small_john @ 2024-03-27 17:19:42

@Joker_Fish 然后你的 vector 还得写 pair


by Joker_Fish @ 2024-03-27 17:20:56

@pyy1 谢谢


by small_john @ 2024-03-27 17:21:30

@Joker_Fish 关于玄关。。。


by Joker_Fish @ 2024-03-27 17:23:24

@pyy1 已关


by Little_x_starTYJ @ 2024-03-27 17:24:24

%%%


by CuteChat @ 2024-03-27 17:27:16

使用 map 的话会导致算法的时间复杂度带 log,这并不是我们希望看到的。可以自己写一个结构体 Edge,存在这一条边的起点终点,边的编号,对应其反向边的编号。


by sunrise1024 @ 2024-03-27 17:28:00

@Joker_Fish 不一定要开 map ,也可以:

id[u].push_back(e[v].size());
id[v].push_back(e[u].size());
e[u].push_back(v);
e[v].push_back(u);

e[u][i]的反边就是e[e[u][i]][id[u][i]]

by sunrise1024 @ 2024-03-27 17:28:52

但是因为这样写的人比较少的原因如果写挂了比较难找到人帮忙调


by Vsinger_洛天依 @ 2024-03-27 17:32:10

少个锤子,我就是这么写的,,


| 下一页