(int jobl, int jobr, int l, int r, int i)
| 221 | } |
| 222 | |
| 223 | public static long query(int jobl, int jobr, int l, int r, int i) { |
| 224 | if (jobl <= l && r <= jobr) { |
| 225 | return sum[i]; |
| 226 | } |
| 227 | int mid = (l + r) / 2; |
| 228 | down(i, mid - l + 1, r - mid); |
| 229 | long ans = 0; |
| 230 | if (jobl <= mid) { |
| 231 | ans = (ans + query(jobl, jobr, l, mid, i << 1)) % MOD; |
| 232 | } |
| 233 | if (jobr > mid) { |
| 234 | ans = (ans + query(jobl, jobr, mid + 1, r, i << 1 | 1)) % MOD; |
| 235 | } |
| 236 | return ans; |
| 237 | } |
| 238 | |
| 239 | // 从x到y的路径上,所有节点的值增加v |
| 240 | public static void pathAdd(int x, int y, int v) { |
no test coverage detected