用 iota(fa + 1, fa + 1 + n, 1);
初始化并查集的 fa 数组,WA
而 for 循环赋值就AC了
为什么?
mst ->
inline ll solve() {
ll cnt = 0, ans = 0;
sort(s + 1, s + 1 + tot);
rep(i, 1, n)fa[i] = i;
for (const auto &x: s) {
ll u = find(x.u), v = find(x.v);
if (u == v)continue;
fa[v] = u, cnt++, ans += x.w;
if (cnt == n - 1)return ans;
}
return -1;
}