#P1091. 【ULR #4】The Happy Prince and Other Tales
【ULR #4】The Happy Prince and Other Tales
有 $n$ 棵树,第 $i$ 棵树的高度为 $h_i$ 且位于数轴上 $x_i$ 的位置,满足 $x_1 < x_2 < \dots < x_{n-1} < x_n$。
可以按以下方式逐个砍伐树木:将树砍倒,并让它向左或向右倒下。树木倒下时不能触碰到其他树木。换句话说,如果位于坐标为 $x_i$,高度为 $h_i$ 的树木向右倒下,则不应该存在坐标为 $x_j$ 的未砍伐的树木,使得 $x_i < x_j < x_i + h_i$。如果同一树木向左倒下,则不应存在坐标为 $x_j$ 的未砍伐的树木,使得 $x_i − h_i < x_j < x_i$。特别地,不允许倒掉的树木落在区间 $[x_1, x_n]$ 之外。换句话说,如果 $x_i − h_i < x_1$,坐标为 $x_i$,高度为 $h_i$ 的树木不能向左倒下;如果 $x_i + h_i > x_n$,坐标为 $x_i$,高度为 $h_i$ 的树木不能向右倒下。
你需要维护两种操作共 $m$ 次:
- 给出 $l,r,d$,将区间 $[l,r]$ 中每棵树的高度加上 $d$。
- 给出 $l,r$,求若只能砍伐区间 $[l,r]$ 中的树,至多能砍多少棵树。
输入格式
第一行两个整数 $n,m$。
下面 $n$ 行,每行两个整数 $x_i,h_i$。
下面 $m$ 行,每行若干个整数描述一次操作,可能是 1 l r d 或 2 l r。
输出格式
对于每个操作 $2$,一行输出一个整数表示答案。
5 6
1 3
4 6
7 3
10 6
13 3
2 1 5
2 2 4
1 2 4 2
2 1 5
2 1 1
2 5 5
5
3
2
1
1
4 7
100 5
105 6
111 9
120 9
2 1 4
2 2 2
1 1 3 1
2 2 2
2 1 3
1 4 4 100
2 3 4
4
1
0
0
0
数据范围
本题采用捆绑测试。
对于所有数据,$1\le n,m\le 2\times 10^5$,$1\le x_1 < x_2 < \dots < x_{n-1} < x_n \le 10^9$,$1\le h_i,d\le 10^9$。保证在操作的任意时刻有 $h_i\le 10^9$。
| 子任务编号 | $n,m\le$ | 特殊性质 | 分数 |
|---|---|---|---|
| $1$ | $5000$ | 无 | $1$ |
| $2$ | $5\times 10^4$ | 无 | $20$ |
| $3$ | $10^5$ | 无 | $15$ |
| $4$ | $2\times 10^5$ | 操作 $2$ 中 $l=1,r=n$ | $9$ |
| $5$ | $2\times 10^5$ | 操作 $1$ 中 $l=r$ | $20$ |
| $6$ | $2\times 10^5$ | 无 | $35$ |
时间限制:$14\texttt{s}$
空间限制:$2\texttt{GB}$