五一培训 清北学堂 DAY5

编程入门 行业动态 更新时间:2024-10-06 01:45:51

五一培训 清北<a href=https://www.elefans.com/category/jswz/34/1767269.html style=学堂 DAY5"/>

五一培训 清北学堂 DAY5

今天是吴耀轩老师的讲解~

今天的主要内容:图论

如何学好图论?

学好图论的基础:必须意识到图论!

邻接矩阵存图:

 

其缺点是显而易见的:1. 空间复杂度O(n^2)不能接受;2.有重边的时候很麻烦;

优点很简单啦:好写qwq(是不是有点糊弄)

邻接表

一些vector的细节:

生成树

 

既然它是一颗树,那么应该满足无环!

比如这样它就是一颗有环树!

 

看个题:

实际上就是让你求最小瓶颈树!qwq

显然红色的更优!

这些是做这个题的做法:

并查集

Kruskal

判断是否构成环:并查集判断是否在一颗树上!

贴上Kruskal的代码:

#include <bits/stdc++.h>using namespace std;const int maxn = 1000005;
struct edge {int u, v, w;
}edg[maxn];
int n, m, p[maxn], ans = 0;bool cmp(edge a, edge b){return a.w < b.w;}
int findp(int t) {return p[t] ? p[t] = findp(p[t]) : t;}
bool merge(int u, int v)
{u = findp(u); v = findp(v);if (u == v) return false;p[u] = v; return true;
}
int main()
{cin >> n >> m;for (int i = 1, u, v, w; i <= m; i++)cin >> u >> v >> w, edg[i] = (edge){u, v, w};sort(edg + 1, edg + m + 1, cmp);for (int i = 1; i <= m; i++)if (merge(edg[i].u, edg[i].v))ans = max(ans, edg[i]. w);cout << ans << endl;
}

 

转载于:.html

更多推荐

五一培训 清北学堂 DAY5

本文发布于:2024-02-28 00:38:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767046.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学堂

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!