AT_arc218_d [ARC218D] I like Increasing
题目描述
给定一个长度为 $N$ 的排列 $P = (P_1, P_2, \dots, P_N)$,其元素为 $1,2,\dots,N$ 的一个排列。
对于一个整数序列 $x=(x_1,x_2,\dots,x_k)$,定义该序列的 **得分** 为满足 $x_i < x_{i+1}$ 的下标 $i$ 的个数。
需要处理 $Q$ 次如下的查询:
- 给定正整数 $l$ 和 $r$,满足 $1 \le l \le r \le N$,对于 $X = (P_l,P_{l+1},\dots,P_r)$,解决下列问题:
- 设 $M$ 表示 $X$ 的所有非空子序列得分的最大值。求得分等于 $M$ 的所有非空子序列中,长度的最小值。
**子序列**的定义如下:对于一个序列 $A$,其子序列是通过从 $A$ 中去除零个或多个元素,并保持剩余元素的相对顺序得到的序列。
输入格式
输入从标准输入读取,格式如下:
> $N$ $Q$
> $P_1\ P_2\ \dots\ P_N$
> $\mathrm{query}_1$
> $\mathrm{query}_2$
> $\vdots$
> $\mathrm{query}_Q$
每个查询格式如下:
> $l\ r$
输出格式
输出 $Q$ 行,第 $i$ 行输出对应 $\mathrm{query}_i$ 的答案。
说明/提示
### 样例解释 1
对于第一组查询,$X = (2,1,4)$。最大得分 $M = 1$,能得到 $M$ 的子序列有 $(2,4),(1,4),(2,1,4)$。其中最小长度为 $2$,即 $(2,4)$ 或 $(1,4)$。
对于第二组查询,$X = (4,6,3,5)$,有 $M = 2$。$(4,6,3,5)$ 的子序列 $X$ 自身的得分为 $2$,长度为 $4$,这是得分为 $2$ 的最短子序列。
对于第三组查询,$X = (1)$,$M = 0$。子序列 $(1)$ 得分为 $0$,长度为 $1$。
对于第四组查询,$X = (2,1,4,6,3,5)$,有 $M = 3$,子序列 $(2,4,6,3,5)$ 得分为 $3$,长度为 $5$。
### 数据范围
- $1 \le N, Q \le 2 \times 10^5$
- $P$ 是 $1,2,\dots,N$ 的一个排列。
- $1 \le l \le r \le N$
- 所有输入均为整数。
由 ChatGPT 5 翻译