File tree Expand file tree Collapse file tree 2 files changed +10
-10
lines changed
Expand file tree Collapse file tree 2 files changed +10
-10
lines changed Original file line number Diff line number Diff line change @@ -34,12 +34,12 @@ template<class T, class F> struct linear_rmq {
3434 (asc[i] | asc[i - 1 ]) & -(in[i] & -in[i]);
3535 }
3636 int idx (int l, int r) {
37- if (unsigned j = in[l] ^ in[r]; j ) {
37+ if (unsigned j = in[l] ^ in[r]) {
3838 j = asc[l] & asc[r] & -bit_floor (j);
39- if (unsigned k = asc[l] ^ j; k )
40- k = bit_floor (k), l = head[(in[l] & -k) | k];
41- if (unsigned k = asc[r] ^ j; k )
42- k = bit_floor (k), r = head[(in[r] & -k) | k];
39+ if (unsigned k = bit_floor ( asc[l] ^ j) )
40+ l = head[(in[l] & -k) | k];
41+ if (unsigned k = bit_floor ( asc[r] ^ j) )
42+ r = head[(in[r] & -k) | k];
4343 }
4444 return cmp (a[l], a[r]) ? l : r;
4545 }
Original file line number Diff line number Diff line change @@ -28,12 +28,12 @@ struct linear_lca {
2828 for (auto [u, p] : order) asc[u] = asc[p] | lsb (in[u]);
2929 }
3030 int lca (int u, int v) {
31- if (unsigned j = in[u] ^ in[v]; j ) {
31+ if (unsigned j = in[u] ^ in[v]) {
3232 j = asc[u] & asc[v] & -bit_floor (j);
33- if (unsigned k = asc[u] ^ j; k )
34- k = bit_floor (k), u = head[(in[u] & -k) | k];
35- if (unsigned k = asc[v] ^ j; k )
36- k = bit_floor (k), v = head[(in[v] & -k) | k];
33+ if (unsigned k = bit_floor ( asc[u] ^ j) )
34+ u = head[(in[u] & -k) | k];
35+ if (unsigned k = bit_floor ( asc[v] ^ j) )
36+ v = head[(in[v] & -k) | k];
3737 }
3838 return d[u] < d[v] ? u : v;
3939 }
You can’t perform that action at this time.
0 commit comments