如果我思路有问题的话请告诉我思路,谢谢!

TLE+WA代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,vis[100010],sum=0,now;
vector<int> vc[100010];
void dfs(int x){
int siz=vc[x].size();
for(int i=0;i<siz;i++){
if(vis[vc[x][i]])
continue;
vis[vc[x][i]]=1;
now++;
dfs(vc[x][i]);
}
return;
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
vc[u].push_back(v);
vc[v].push_back(u);
}
for(int i=1;i<=n;i++){
now=0;
memset(vis,0,sizeof(vis));
dfs(i);
sum+=n-now;
}
cout<<sum/2;
return 0;
}