diff --git a/Luogu/problem/P2330/P2330.cpp b/Luogu/problem/P2330/P2330.cpp new file mode 100644 index 00000000..51369b3b --- /dev/null +++ b/Luogu/problem/P2330/P2330.cpp @@ -0,0 +1,37 @@ +#include + +using namespace std; + +struct edge { + int from, to, dis; + + bool operator<(edge b) const { + return dis < b.dis; + } +} e[100005]; + +int n, m, s, maxx, fa[10005]; + +int get(int x) { + if (fa[x] == x) return x; + return fa[x] = get(fa[x]); +} + +int main() { + cin >> n >> m; + for (int i = 0; i < m; i++) { + cin >> e[i].from >> e[i].to >> e[i].dis; + } + for (int i = 0; i < n; i++) { + fa[i] = i; + } + sort(e, e + m); + for (int i = 0; i < m; i++) { + int x = get(e[i].from), y = get(e[i].to); + if (x == y) continue; + fa[x] = y; + maxx = e[i].dis; + } + cout << n - 1 << " " << maxx << endl; + return 0; +}