代码:
#include<vector>
using namespace std;
vector<int> e[100005];
int dep[100005], f[100005];
void dfs(int x) {
int len = e[x].size();
f[x] = dep[x];
for (int i = 0; i < len; ++i) {
dep[e[x][i]] = dep[x] + 1;
dfs(e[x][i]);
f[x] = max(f[x], f[e[x][i]]);
}
}
int main() {
int n, x, y;
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> x >> y;
if (x != 0) e[i].push_back(x);
if (y != 0) e[i].push_back(y);
}
dfs(1);
cout << f[1] + 1;
return 0;
}
深度优先搜索与最深节点
这段代码实现了一个基于深度优先搜索(DFS)的算法,用于寻找给定图中节点的最大深度。它首先读取图的节点数和边,然后通过DFS遍历每个节点并更新节点的深度和最大路径值。最后输出起点1的最大路径深度加1。
3392

被折叠的 条评论
为什么被折叠?



