PT07Y - Is it a tree

You are given an unweighted, undirected graph. Write a program to check if it's a tree topology.


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).


Print YES if the given graph is a tree, otherwise print NO.


3 2
1 2
2 3


hide comments
akashbhalotia: 2019-01-20 11:59:39

AC in java. Simple DSU. Only create DSU if M=N-1, else you will get TLE.

sunny: 2019-01-19 19:16:03

TLE on spoj. Same problem AC on codechef. On codechef time shown is 0.08s taken for AC. WTF!!

dkkv0000: 2019-01-19 18:38:14

beware graph is directed!!!!

Last edit: 2019-01-19 18:38:23
gaurav_2000: 2019-01-14 15:48:32

Try on Test Case
6 5
1 4
2 4
3 4
5 4
5 6
Ans- No

Last edit: 2019-01-19 05:51:24
malcolm123_ssj: 2019-01-06 07:24:40

Check for two conditions:
1) n = e+1
2) The graph has only one connected component.

If condition 1 is false, then it isn't a tree. If condition 1 is true, then check for condition 2. If condition 2 is true, then the graph is a tree. Otherwise, the graph isn't a tree.

Simple AC in one go :D

artistic_15: 2018-12-29 20:05:48

Easy Union Find Implementation.

suyashky: 2018-11-27 08:40:39

learned a lot....good question for beginners.
Need to know property of tree and DFS

themast3r: 2018-09-22 18:44:52

Simple Disjoint Set Union gets AC!

harry_shit: 2018-09-19 12:54:03

can someone tell me what will be the start it 1??

phoemur: 2018-09-12 00:58:36

Beware Adjacency Matrix will most likely TLE.
Use simple Adjacency List instead...

Costed me 3 TLE

Added by:Thanh-Vy Hua
Time limit:0.5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO
Resource:Co-author Amber