Given the edges of a tree and a sum S. The task is to assign weights to the all the edges of the tree such that the longest path in terms of weights is minimized and the total sum of weights assigned should be S and print the longest path’s weight.
Note: Edges can be assigned any weights in range [0, S] and can be fractional also.
Input: 1 / | \ 2 3 4 S = 3 Output: 2 All the edges can be assigned weights of 1, so the longest path will in terms of weight will be 2--1--4 or 2--1--3 Input: 1 / 2 / \ 3 4 / \ 5 6 S = 1 Output: 0.50 Assign the given below weights to edges. 1--2: 0.25 2--3: 0.25 2--4: 0 4--5: 0.25 4--6: 0.25 Hence the longest path in terms of weight is 1--2--3 or 1--2--4--5 or 1--2--4--6.
Approach: The property of a tree that a path can have a maximum of two leaf nodes in it can be used to solve the above problem. So if we assign weights only to the edges connecting the leaf nodes, and assign other edges to 0. Then every edge connecting to the leaf nodes will be assigned s/(number of leaf nodes). Since a path can contain a maximum of two leaf nodes, hence the longest path will be 2 * (s/number of leaf nodes).
Below is the implementation of the above approach:
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Tree with N nodes and K leaves such that distance between farthest leaves is minimized
- Count nodes having Bitwise XOR of all edges in their path from the root equal to K
- Find number of edges that can be broken in a tree such that Bitwise OR of resulting two trees are equal
- Number of distinct pair of edges such that it partitions both trees into same subsets of nodes
- Color tree with minimum colors such that colors of edges incident to a vertex are different
- Print updated levels of each node of a Complete Binary Tree based on difference in weights of subtrees
- Longest path in an undirected tree
- Print the longest leaf to leaf path in a Binary tree
- Longest Path with Same Values in a Binary Tree
- Length of longest straight path from a given Binary Tree
- Print the longest path from root to leaf in a Binary tree
- Sum of nodes on the longest path from root to leaf node
- Possible edges of a tree for given diameter, height and vertices
- Number of edges in mirror image of Complete binary tree
- Number of edges in a perfect binary tree with N levels
- Minimum number of edges required to be removed from an Undirected Graph to make it acyclic
- Maximum number of edges to be removed to contain exactly K connected components in the Graph
- Right sibling of each node in a tree given as array of edges
- Number of unique paths in tree such that every path has a value greater than K
- Find the maximum sum leaf to root path in a Binary Tree
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.