Hướng giải của Cây khung nhỏ nhất (Kruskal)
Nộp mã nguồn lời giải chính thức trước khi giải bài tập đó có thể khiến bạn bị ban.
Tác giả:
```cpp
include <bits/stdc++.h>
using namespace std;
struct DSU {
vector
int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<tuple<int,int,int>> edges; while (m--) { int u, v, w; cin >> u >> v >> w; edges.push_back({w, u, v}); } sort(edges.begin(), edges.end()); DSU dsu(n); long long total = 0; for (auto& [w, u, v] : edges) if (dsu.unite(u, v)) total += w; cout << total << '\n'; return 0; }
Nhận xét