好久之前做的犯罪团伙今天又翻出来..还不是大数据版 等会去把dfs写了
#include<bits/stdc++.h>
using namespace std; int n,m,a[6000][6000],s,x,y; bool flag[6000]={};//用一个bool数组作为标记 且初始为假 void kk(int tt) { for (int i=1;i<=n;i++) { if ((a[tt][i])&&(!flag[i]))//判断真假 { flag[i]=1; kk(i); } } } int main() { int s=0; cin>>n>>m; for (int i=1;i<=m;i++) { cin>>x>>y; a[x][y]=1; a[y][x]=1; } for (int i=1;i<=n;i++) { if (!flag[i]) { s=s+1; kk(i); } } cout<<s; return 0; }