原文地址:Longest path between any pair of vertices
已知一个城市连接图,它们之间是通过电缆连接的,这样的话任意两个城市之间都没有环路。我们需要在已知的这个城市图中找到两个城市之间最大长度的电缆。
Input : n = 6
1 2 3 // Cable length from 1 to 2 (or 2 to 1) is 3
2 3 4
2 6 2
6 4 6
6 5 5
Output: maximum length of cable = 12
Method 1 (Simple DFS)
方法 1(简单的深度优先搜寻(DFS))
我们可以为这个已知的城市地图建立一个无向图,对于每一个城市都去做DFS并找到最长的电缆。在遍历的过程中,我们寻找可以达到当前城市的最长电缆,如果它的相邻城市不能访问的话,那么就调用DFS,但是如果当前节点所有的相邻城市都访问过了,如max_length以前的值比现在的总长度要小,那么就更新max_length的值。
// C++ program to find the longest cable length
// between any two cities.
#include<bits/stdc++.h>