#include <cstdio> // 深度优先参考代码
const int maxn=10010;
int a[maxn][maxn];
int vis[maxn];
int n,m,cnt;
void dfs(int k) {
vis[k]=1;
for(int i=1; i<=n; i++)
if(!vis[i]&&a[k][i]) dfs(i);
}
int main() {
scanf("%d%d",&n,&m);
int x,y;
for(int i=1; i<=m; i++) {
scanf("%d%d",&x,&y);
a[x][y]=a[y][x]=1;
}
for(int i=1; i<=n; i++)
if(!vis[i]) {
dfs(i);
cnt++;
}
printf("%d\n",cnt);
return 0;
}
其实他有错误!
你注意一下全角和半角!!!