100%AC代码,注意下面我数组设1009和2009都会报错,改成n之后就ac了。。 #include <iostream> #include <algorithm> #include <vector> using namespace std; int n; int height(vector<vector<int> >&kid, int root){ if(root < 0 || root >= n) return 0; if(kid[root].empty()) return 1; int h = 0; for(auto x: kid[root]) h = max(h, height(kid, x)); return h+1; } int main() { int parent, child; cin>>n; vector<int>indegree(n, 0); vector<vector<int> >kid(n, vector<int>()); for(int i=1; i<n; i++){ scanf("%d %d", &parent, &child); indegree[child]++; kid[parent].push_back(child); } int maxH = 0; for(int i = 0; i<n; i++){ if(indegree[i] == 0) maxH = max(maxH, height(kid, i)); } cout<<maxH<<endl; return 0; }
点赞 4
牛客网
牛客企业服务