(long[] tree, int jobl, int jobr, int l, int r, int i)
| 121 | } |
| 122 | |
| 123 | public static long query(long[] tree, int jobl, int jobr, int l, int r, int i) { |
| 124 | if (jobl <= l && r <= jobr) { |
| 125 | return tree[i]; |
| 126 | } |
| 127 | int mid = (l + r) >> 1; |
| 128 | long ans = -INF; |
| 129 | if (jobl <= mid) { |
| 130 | ans = Math.max(ans, query(tree, jobl, jobr, l, mid, i << 1)); |
| 131 | } |
| 132 | if (jobr > mid) { |
| 133 | ans = Math.max(ans, query(tree, jobl, jobr, mid + 1, r, i << 1 | 1)); |
| 134 | } |
| 135 | return ans; |
| 136 | } |
| 137 | |
| 138 | // 得到子树大小递归版,java会爆栈,C++可以通过 |
| 139 | public static void getSize1(int u, int fa) { |