啊哈,我竟然不能在问题讨论区发帖,那就在这问问吧
{\Huge 70} 分 有没有大佬,神犇帮帮我?
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
vector<int> q[MAXN];
bool vis[MAXN];
vector<int> s;
int dfs(int u){
vis[u] = true;
int cnt = 1;
for(auto i : q[u]){
if(!vis[i]) cnt += dfs(i);
}
return cnt;
}
int main() {
int n, m;
cin >> n >> m;
for(int i = 1; i <= m; i++){
int u, v;
cin >> u >> v;
q[u].push_back(v);
q[v].push_back(u);
}
for(int i = 1; i <= n; i++){
if(vis[i] == false){
vis[i]=true;
s.push_back(dfs(i));
}
}
int t = 0;
int sum = 0;
for (int i : s) {
t += i * sum;
sum += i;
}
cout << t;
return 0;
}