dfs可以做吗?
如果可以,那我为什么28分?
#include<bits/stdc++.h>
using namespace std;
int n,visit[300];
vector<int> G[300];
void dfs(int v){
if(visit[v])return;
visit[v]=1;
for(int i=0;i<G[v].size();i++){
int y=G[v][i];
dfs(y);
}
}
int main()
{
cin>>n;
for(int x=1;x<=n;x++){
int y;
while(cin>>y&&y!=0){
G[y].push_back(x);
G[x].push_back(y);
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(visit[i]==0){
ans++;
dfs(i);
}
}
cout<<ans;
return 0;
}