• 板块P2835 刻录光盘
  • 楼主shimao
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/7/5 18:05
  • 上次更新2023/11/4 18:35:53
查看原帖
312121
shimao楼主2021/7/5 18:05

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;
}
2021/7/5 18:05
加载中...