Lang:G++
Edit12345678910111213141516171819202122#include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>using namespace std;const int N=508;int a[N];int findr(int x){if(a[x]<0)return x;return a[x]=findr(a[x]);}int merge(int x,int y){x=findr(x);y=findr(y);if(x!=y){a[y]+=a[x];a[x]=y;}return 0;}int main(void){int i,t,n,m,p1,p2;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(i=1;i<=n;i++)a[i]=-1;for(i=1;i<=m;i++){scanf("%d%d",&p1,&p2);merge(p1,p2);}if(m==n-1&&a[findr(1)]==-n)printf("YES\n");else printf("NO\n");}return 0;}