# Minimum spanning tree cost of given Graphs

• Difficulty Level : Expert
• Last Updated : 15 Sep, 2022

Given an undirected graph of V nodes (V > 2) named V1, V2, V3, …, Vn. Two nodes Vi and Vj are connected to each other if and only if 0 < | i – j | â‰¤ 2. Each edge between any vertex pair (Vi, Vj) is assigned a weight i + j. The task is to find the cost of the minimum spanning tree of such graph with V nodes.

Examples:

Input: V = 4

Output: 13

Input: V = 5
Output: 21

Approach:

Starting with a graph with minimum nodes (i.e. 3 nodes), the cost of the minimum spanning tree will be 7. Now for every node i starting from the fourth node which can be added to this graph, ith node can only be connected to (i – 1)th and (i – 2)th node and the minimum spanning tree will only include the node with the minimum weight so the newly added edge will have the weight i + (i – 2)

So addition of fourth node will increase the overall weight as 7 + (4 + 2) = 13
Similarly adding fifth node, weight = 13 + (5 + 3) = 21
…
For nth node, weight = weight + (n + (n – 2))

This can be generalized as weight = V2 – V + 1 where V is the total nodes in the graph.

Below is the implementation of the above approach:

## C++

 // C++ implementation of the approach #include using namespace std;   // Function that returns the minimum cost // of the spanning tree for the required graph int getMinCost(int Vertices) {     int cost = 0;       // Calculating cost of MST     cost = (Vertices * Vertices) - Vertices + 1;       return cost; }   // Driver code int main() {     int V = 5;     cout << getMinCost(V);       return 0; }

## Java

 // Java implementation of the approach class GfG {   // Function that returns the minimum cost // of the spanning tree for the required graph static int getMinCost(int Vertices) {     int cost = 0;       // Calculating cost of MST     cost = (Vertices * Vertices) - Vertices + 1;       return cost; }   // Driver code public static void main(String[] args) {     int V = 5;     System.out.println(getMinCost(V)); } }   // This code is contributed by // Prerna Saini.

## C#

 // C# implementation of the above approach using System;   class GfG {       // Function that returns the minimum cost     // of the spanning tree for the required graph     static int getMinCost(int Vertices)     {         int cost = 0;               // Calculating cost of MST         cost = (Vertices * Vertices) - Vertices + 1;               return cost;     }           // Driver code     public static void Main()     {         int V = 5;         Console.WriteLine(getMinCost(V));     } }   // This code is contributed by Ryuga

## Python3

 # python3 implementation of the approach    # Function that returns the minimum cost # of the spanning tree for the required graph def getMinCost( Vertices):     cost = 0        # Calculating cost of MST     cost = (Vertices * Vertices) - Vertices + 1        return cost    # Driver code if __name__ == "__main__":       V = 5     print (getMinCost(V))



## Javascript



Output

21

Complexity Analysis:

• Time Complexity: O(1)
• Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles