有n个顶点,编号为1~n,用dfs遍历一遍邻接矩阵,若遍历到的顶点个数等于n,则证明改无向图是一个连通图
#include<bits/stdc++.h>
using namespace std;
const int maxn=1005;
bool vis[maxn];
vector<int>G[maxn];
int n,m,k,number=0;
void dfs(int tmp) {
vis[tmp]=1;
cnt++;
for(int i=0; i<G[tmp].size(); i++) {
if(!vis[G[tmp][i]]) {
dfs(G[tmp][i]);
}
}
}
int main(){
int a,b;
cin>>n>>m;
while(m--){
cin>>a>>b;
G[a].push_back(b);
G[b].push_back(a);
}
dfs(1);
if(number==n) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
return 0;
}