题解在此
2026-02-28 20:22:15
发布于:浙江
4阅读
0回复
0点赞
并查集题目的广搜代码
#include <bits/stdc++.h>
using namespace std;
vector<int>ve[100010];
bool vis[100010]={};
void bfs(int i){
queue<int>q;
q.push(i);
vis[i]=i;
while (q.size()){
int l=q.front();
q.pop();
for (auto k:ve[l]){
if (vis[k]==0){
vis[k]=1;
q.push(k);
}
}
}
}
int main(){
int n,m;
cin>>n>>m;
for (int i=1;i<=m;i++){
int u,v;
cin>>u>>v;
ve[u].push_back(v);
ve[v].push_back(u);
}
bfs(1);
int ans=0;
for (int i=1;i<=n;i++){
if (vis[i]==0){
ans++;
bfs(i);
}
}
cout<<ans;
return 0;
}
这里空空如也








有帮助,赞一个