PT07Y  Is it a tree
You are given an unweighted, undirected graph. Write a program to check if it's a tree topology.
Input
The first line of the input file contains two integers N and M  number of nodes and number of edges in the graph (0 < N <= 10000, 0 <= M <= 20000). Next M lines contain M edges of that graph  Each line contains a pair (u, v) means there is an edge between node u and node v (1 <= u, v <= N).
Output
Print YES if the given graph is a tree, otherwise print NO.
Example
Input: 3 2 1 2 2 3 Output: YES
hide comments
mushfiq123:
20240211 17:06:51
should have added a test case with disconnected components


k124k3n:
20230819 06:23:21
bad problem. Maybe there's duplicate edge in problem like:


zeyf:
20220411 00:51:23
You can just use a UnionFind/DisjointSet for all other cases and whenever there is a failed union (returns false), this is the case where both nodes u and v are part of the same set already. This means it is not a tree in it's current form! 

amansingh_20:
20211129 09:25:50
AC in one go....


shofiqur_052:
20210817 21:50:21
Number of connected component 1


avx_5801:
20210709 11:08:30
You have to also check self loop condition,then you get AC in one GO by Using simple dfs :) 

mortal_beast:
20210630 15:19:14
easy one 

the_art_maniac:
20210529 00:17:25
Some test cases that will help you:


yasser1110:
20210219 14:54:05
+1 @jrseinc disjoint union set solution is the most straightforward one. Even though adjacency matrix and adjacency list solutions also work. Last edit: 20210219 14:54:25 

kelmi:
20210119 13:43:46
Try graphs like this one:

Added by:  ThanhVy Hua 
Date:  20070328 
Time limit:  0.5s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ERL JSRHINO 
Resource:  Coauthor Amber 