描述
记得上小学奥数时,JacmY最喜欢做的题就是给一个图形,从它某一个顶点出发描这个图形,若恰通过图中每条边一次,看最后能否又回到起点。当时JacmY只懂得拿着铅笔随便画画试试,如果成功了,就说这个图能画下来,而他判断不能画下来的标准就是费了半天功夫都画不出来,当然这么做是不对的,特别当图形变得复杂时,JacmY是试不过来的。看着可怜的JacmY,你能帮帮他吗?
输入
第一行一个整数T代表样例的组数。
以下T组数据中,每组第一行是N,K,(2 <= N <= 100)分别代表当前图形有N个顶点,K条边,接下来K行中,每行两个整数X, Y( 1 <= X, Y <= N)代表顶点X和顶点Y之间有一条边。
每组数据之间有一空行。
输出
如果当前图形能按照题目要求描出来,则输出“YES”(不包括引号),否则输出“NO”。
样例输入
3
3 3
1 2
2 3
1 3
3 2
1 2
2 3
2 2
1 2
1 2
样例输出
YES
NO
YES
#include<iostream>
using namespace std;
int main()
{
int test;
int n,k,i,x,y;
cin>>test;
while(test--)
{
int f=0;
int a[101]={0};
cin>>n>>k;
for(i=1;i<=k;i++)
{
cin>>x>>y;
a[x]++;
a[y]++;
}
for(i=1;i<=n;i++)
{
if(a[i]%2==1)
{
f=1;
}
}
if(f==0) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}