1095-奇特的图形
描述
记得上小学奥数时,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; }