File tree Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Expand file tree Collapse file tree 1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -7,14 +7,14 @@ class TreeAncestor {
7
7
public:
8
8
TreeAncestor (int n, vector<int >& parent) {
9
9
for (const auto & p : parent) {
10
- parent_.emplace_back (vector<int >(1 , p));
10
+ parent_.emplace_back (vector<int >(p != - 1 , p));
11
11
}
12
12
for (int i = 0 , max_depth = 1 ; i < max_depth; ++i) {
13
13
for (auto & p : parent_) {
14
- if (!(i < p.size () && p[i] != - 1 )) {
14
+ if (!(i < p.size () && i < parent_[ p[i]]. size () )) {
15
15
continue ;
16
16
}
17
- p.emplace_back ((i < parent_[p[i]]. size ()) ? parent_[p[i]][i] : - 1 );
17
+ p.emplace_back (parent_[p[i]][i] );
18
18
if (p.size () > max_depth) {
19
19
max_depth = p.size ();
20
20
}
@@ -25,7 +25,7 @@ class TreeAncestor {
25
25
int getKthAncestor (int node, int k) {
26
26
for (; k; k -= k & ~(k - 1 )) {
27
27
int i = __builtin_ctz (k & ~(k - 1 ));
28
- if (!(i < parent_[node].size () && parent_[node][i] != - 1 )) {
28
+ if (!(i < parent_[node].size ())) {
29
29
return -1 ;
30
30
}
31
31
node = parent_[node][i];
You can’t perform that action at this time.
0 commit comments