#include <iostream>
#include <cstring>
using namespace std;
void dfs(int n);
int a[1010];
bool vis[1010];
bool m[1010][1010];
int P;
int Q;
int main()
{
int T;
cin >> T;
while(T--)
{
int A, B;
cin >> P >> Q;
memset(a, 0, sizeof(a));
memset(vis, 0, sizeof(vis));
memset(m, 0, sizeof(m));
for(int i = 1; i <= Q; i++)
{
cin >> A >> B;
m[A][B] = 1;
m[B][A] = 1;
a[A]++;
a[B]++;
}
dfs(1);
int flag = 1;
int num = 0;
for(int i = 1; i <= P; i++)
{
if(vis[i] == 0)
{
flag = 0;
break;
}
if(a[i] % 2 == 1)
num++;
}
if(flag == 1 && num <= 2)
cout << "Yes\n";
else
cout << "No\n";
}
}
void dfs(int n)
{
vis[n] = 1;
for(int i = 1; i <= P; i++)
if(m[n][i] == 1 && vis[i] == 0)
dfs(i);
}
南阳理工OJ_题目42 一笔画问题
最新推荐文章于 2017-03-05 20:54:04 发布