#include<iostream>
#include<cstring>
using namespace std;
int a[1001];
int fa[1001];
int find(int i)
{
while(i!=fa[i])
i=fa[i];
return i;
}
void join(int i,int j)
{
int fa_i=find(i);
int fa_j=find(j);
if(fa_i!=fa_j)
{
fa[fa_j]=fa_i;
}
}
int main()
{
int t,n,m,x,y;
bool zero=true;
int flag=0;
int odd=0;
cin>>t;
while(t--)
{
memset(a,0,sizeof(a));
odd=0;
flag=0;
cin>>n>>m;
for(int j=1;j<=n;j++)
fa[j]=j;
for(int j=0;j<m;j++)
{
cin>>x>>y;
a[x]++;
a[y]++;
join(x,y);
}
for(int i=1;i<=n;i++)
{
if(a[i]%2==1){
odd++;
}
if(fa[i]==i)flag++;
}
if(flag==1&&odd<=2)cout<<"Yes\n";
else cout<<"No\n";
}
}
一笔画问题(南阳理工oj)
最新推荐文章于 2018-04-17 13:40:56 发布