1. Note that there exists a unique path between each pair of cites. Also, the final array that you need to create should be 1-indexed, meaning cities with a maximum distance = 1 should be stored on the normal 0th index.
2. Also, note that the distance between two is the number of cities you cross in between.
Given 'N' = 7, and Array = {[1, 2], [1, 3], [2, 4], [2, 5], [3, 6], [3, 7]}
So the tree of cities formed in this case would look like:
In the above problem, the subtrees with subsets {[1, 2], [1, 3], [2, 4], [2, 5], [3, 6], [3, 7]}, have a maximum distance of 1, so put 6 on index 1.
Similarly the subtrees with subsets {[1, 2, 4], [1, 2, 5], [2, 1, 3], [4, 2, 5], [1, 3, 6], [1, 3, 7], [6, 3, 7], [1, 2, 4, 5], [1, 3, 6, 7]} have a maximum distance of 2, so put 9 on index 2.
Now, the subtrees with subsets {[4, 2, 1, 3], [2, 1, 3, 7], [5, 2, 1, 3], [2, 1, 3, 6], [4, 5, 2, 1, 3], [2, 1, 3, 6, 7]} have a maximum distance of 3, so put 6 on index 3.
Now, the subtrees with subsets {[4, 2, 1, 3, 7], [4, 2, 1, 3, 6], [5, 2, 1, 3, 7], [5, 2, 1, 3, 6], [5, 2, 1, 3, 6, 7], [4, 2, 1, 3, 6, 7], [4, 2, 5, 1, 3, 6], [4, 2, 5, 1, 3, 7], [4, 2, 5, 1, 3, 6, 7]} have a maximum distance of 4, so put 12 on index 4.
No subtree has two nodes where the maximum distance between them is 5 and 6 so print 0 on both these indexes.
Final resultant array = [6, 9, 6, 9, 0, 0]
The first line contains an integer ‘T’ which denotes the number of test cases.
The first line of each test case contains a single integer ‘N’ denoting the number of cities.
The next ‘N - 1’ lines of each test contain an array of ‘N' - 1 pairs where each pair denotes path from ‘I1’ to ‘I2’
For each test case, you need to return ‘N - 1’ space-separated integers where the ‘ith’ element denotes the number of paths in which the maximum distance between the two cities is equal to ‘i’.
Print the output of each test case in a separate line.
You don’t need to print anything, It has already been taken care of. Just implement the given function.
1 <= T <= 10
2 <= N <= 15
size of array == N - 1
1 <= I1, I2 <= N
Time limit: 1 sec
The simple idea that we use in this approach will be to check all the subsets of cities. For every subset, we will check if it is valid or not. If the subtree is valid, we then find the maximum distance between the two nodes. Now store it according to 1-based indexing.
If for any root, the number of visited nodes equals the number of elements in the subset, it is a valid subtree.
The steps are as follows:
COUNT ISLANDS
Capturing Grid
Rotting Oranges
Distance to a Cycle in Undirected Graph
8-Queen Problem