文章
8
粉丝
71
获赞
0
访问
10.5k
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<utility>
#include<unordered_map>
using namespace std;
const int c=pow(10,3)+2;
int grid[c][c];
int visit[c];
void dfs(int n,int v){
visit[v]=1;
for(int i=1;i<=n;i++){
if(grid[v][i]==1&&visit[i]==0)dfs(n,i);
}
}
int main(){
int n,m;
while(cin>>n>>m&&n!=0){
fill(grid,grid+n*n,-1);
fill(visit,visit+n,0);
for(int i=1;i<=n;i++)grid[i][i]=1;
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
grid[x][y]=1;
grid[y][x]=1;
}
dfs(n,1);
int flag=0;
for(int i=1;i<=n;i++){
if(visit[i]==0){
flag=1;
break;
}
}
if(flag==0)printf("Yes\n");
else printf("No\n");
}
}
登录后发布评论
给二维数组赋值时,首地址必须写grid[0]。
fill(grid[0],grid[0]+c*c,-1);