#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int edge[1002][1002];
int visited[1002];
int degree[1002];
int sum;
void dfs(int p,int i){
int j;
visited[i+1]=1;
for(j=0;j<p;j++){
if(edge[i][j]==1&&visited[j+1]==0){
dfs(p,j);
}
}
}
int main(int argc, char const *argv[])
{
int n;
scanf("%d",&n);
while(n--){
int p,q;
memset(edge,0,sizeof(edge));
memset(visited,0,sizeof(visited));
memset(degree,0,sizeof(degree));
sum=0;
scanf("%d%d",&p,&q);
for(int i=0;i<q;i++){
int a,b;
scanf("%d%d",&a,&b);
edge[a-1][b-1]=edge[b-1][a-1]=1;
degree[a]++;
degree[b]++;
}
for(int i=1;i<=p;i++){
if(degree[i]%2!=0){
sum++;
}
}
dfs(p,0); //这里的0是随意的
int t=0;
for(int i=1;i<=p;i++){
if(visited[i]==0){
t=1;
}
}
if((sum==0||sum==2)&&t==0){
printf("Yes\n" );
}
else printf("No\n");
}
return 0;
}
nyoj42
最新推荐文章于 2018-03-29 20:16:44 发布