AC_love @ 2023-09-26 20:15:32
vector 党震怒
所以如果写一篇对最大流算法介绍和其他题解都一样的题解,然后详细介绍如何用 vector 实现最大流算法的话,可以联系管理员添加题解吗?
by AC_love @ 2023-09-26 20:44:57
@Phantom2009 感觉很厉害,可以试试
by _WRYYY_ @ 2023-09-27 09:29:19
处理反向边一般有两种做法,数据小点可以直接开矩阵(虽然我觉得这样还不如直接邻接矩阵),数据大了的话就给 vector 再套个 pair 进去
vector<pair<int,pair<int,int>>>a[N];
我一般这样写,first 是到哪个节点,second.first 是边权, second.second 是反向边编号,调用反向边就直接 a[y][fy-1].....
y 是 first ,fy 是 second.second
加边就这样写
inline void vadd(int x, int y, int w)
{
a[x].push_back(m_p(y, m_p(w, a[y].size() + 1)));
a[y].push_back(m_p(x, m_p(0, a[x].size())));
}
不喜欢 pair 也可以用结构体,只是要排序的话就要重载运算符了。
要写弧优化的话也很简单,还是两种一个是新开一个数组存,另一个就是再套个 pair 。不建议写后者。
用 vector 就是会占点空间,不过现在的比赛基本上都不会卡空间
by Expert_Dream @ 2024-01-13 11:57:27
@AC_love 主打就是为了网络流才学链式前向星,还有没有一种可能,vector本质根链式前向星没有区别,而如果多开一个数组的话就是用vector来写链式前向星^^^^