摘要: 最大流 1 struct Dinic 2 { 3 int head[maxn], tot, cur[maxn]; 4 int dis[maxn]; 5 int s, e; 6 queue<int>q; 7 8 struct node 9 { 10 int v, w; 11 int next; 12 阅读全文
posted @ 2020-02-29 18:39 Big-Kelly 阅读(156) 评论(0) 推荐(0)
摘要: 1 struct Tree 2 { 3 int n, a[maxn]; 4 5 struct Edge 6 { 7 int v, next; 8 }edge[maxn<<1]; 9 10 int head[maxn], tot; 11 12 void add(int u, int v) 13 { 1 阅读全文
posted @ 2020-02-29 18:36 Big-Kelly 阅读(94) 评论(0) 推荐(0)
摘要: 问题: Kruskal算法构造最小生成树的过程。 解析: Kruskal算法的基本思路: 对于所有的边,每次取一条最短的边(不能重复取),判断它的两个端点是否已经在一个连通块中了(并查集维护),如果是,那么取下一条边;如果没在一个连通块中,则把两个连通块(不一定是两个点)连在一起,答案加上当前边的长 阅读全文
posted @ 2020-02-29 14:41 Big-Kelly 阅读(147) 评论(0) 推荐(0)
摘要: 问题: Prim算法构造最小生成树的过程。 解析: Prim算法的基本思路: 从一个点出发,找到该点相连的边的最短边,把这条边的另一个端点加入点集。不断找点集中点相连的最短边,若该边的另一个端点也在点集中,则找次短边;若该边的另一个端点不在点集中,则将该点加入点集,直到所有的点都在点集中。 解析图: 阅读全文
posted @ 2020-02-29 14:34 Big-Kelly 阅读(163) 评论(0) 推荐(0)