c++ - 如何使用 dfs O(n) 打印图形的 MaxPath?

标签 c++ algorithm graph vector depth-first-search

我们想找到距离第i个顶点最远的顶点,

离图当前顶点最远的顶点,给我们最大的路径。

请帮我解决这个问题:

vector<int> v[100];
bool mark[100];
int v1;

inline int max_path(int k)
{
    int result = -1;
    mark[k] = true;
    for(int i=0; i<v[k].size(); i++)
        if(!mark[v[k][i]])
        {
            int x = max_path(v[k][i]);
            if(x > result)
            {
                result = x;
                v1 = v[k][i];
            }
        }
    return result+1;
}

v1 必须是距当前顶点(k)最远的顶点,result 必须是路径的长度。

最佳答案

您可以使用 int result[n] 然后打印出那个的最大 var...

关于c++ - 如何使用 dfs O(n) 打印图形的 MaxPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19690801/

相关文章:

c++ - "Permission denied"第二次打开文件写

python - 如何按时间读取日志文件并提取不包含数据信息的特定行

c - TLE 至 酒店 (spoj)

c - 匈牙利算法 - 维基百科方法不适用于此示例

r - Igraph:获取最长测地距离

Java 控制流图库

c++ - 如何在 Xcode 3.2.3 中编译 C++ 程序?

c++ - 从类模板函数返回类引用

java - 如何获得图中某些节点彼此断开连接的最小成本

c++ - 如何使用 CMake 将文件添加到 Eclipse CDT 项目?