hiho week 161 register

Ended

Participants:317

Verdict:Accepted
Score:100 / 100
Submitted:2017-07-31 12:30:57

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#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;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX