P15585 [KTSC 2026] 绝妙区间 2 / Wonderful Interval 2
题目描述
英宇有两个长度为 $N$ 的数组 $A,B$。对于任意 $0\le i\le N-1$,有 $A[i]\le B[i]$。
一个区间 $[l,r]$ 是**绝妙区间**,当且仅当其满足以下所有条件:
- $l,r$ 为整数;
- $0\le l\le r\le N-1$;
- 通过重复以下操作,可以将 $[A[l],\cdots,A[r]]$ 变换为 $[B[l],\cdots,B[r]]$:
- 令此时的数组为 $X=[X[0],X[1],\cdots,X[r-l]]$。
- 选择**两个不同的**整数 $i,j$($0\le i,j\le r-l$)满足 $X[i]=X[j]$,然后令 $X[i]\gets X[i]+1$。
英宇好奇哪些区间是绝妙区间。具体地,英宇给定了 $Q$ 个询问,编号 $0\sim Q-1$,这些询问用两个长度为 $Q$ 的数组 $L,R$ 来表示。
询问 $j$($0\le j\le Q-1$)表示,查询区间 $[L[j],R[j]]$ 是否是绝妙区间。
写一个程序回答英宇的询问。
### 实现细节
**这是一道函数式交互题**。你不必,也不应实现 `main` 函数。
你应当实现以下的函数:
```cpp
vector array_operation(vector A, vector B, vector L, vector R)
```
- $A,B$:大小为 $N$ 的整数数组。
- $L,R$:大小为 $Q$ 的整数数组。
- 返回一个大小为 $Q$ 的整数数组 $S$。若 $[L[j],R[j]]$ 是绝妙区间,$S[j]$ 应为 $1$,否则为 $0$($0\le j\le Q-1$)。
- 该函数被调用恰好一次。
你的源代码中不应调用任何输入/输出函数。
输入格式
示例评测程序的输入格式如下:
* 第 $1$ 行:$N$ $Q$
* 对于所有 $0 \le i \le N - 1$:
* 第 $2 + i$ 行:$A[i]$ $B[i]$
* 对于所有 $0 \le i \le Q - 1$:
* 第 $2 + N + i$ 行:$L[i]$ $R[i]$
输出格式
示例评测程序按以下格式打印答案:
* 第 $1$ 行:`array_operation` 的返回值
说明/提示
### 数据范围
- $1\le N,Q\le 250\, 000$;
- $1\le A[i]\le B[i]\le 10^9$($0\le i\le N-1$);
- $0\le L[j]\le R[j]\le N-1$($0\le j\le Q-1$);
### 子任务
| 编号 | 得分 | 限制 |
| :-: | :-: | :- |
| $1$ | $ 9$ | $N,Q\le 100$,$B[i]\le 100$ |
| $2$ | $ 7$ | $N,Q\le 2\, 000$,$A[i]=1$ |
| $3$ | $16$ | $A[i]=1$ |
| $4$ | $10$ | $N,Q\le 2\, 000$ |
| $5$ | $ 4$ | $B[i]\le 2$ |
| $6$ | $13$ | $B[i]\le 100$ |
| $7$ | $31$ | $B[i]\le 250\, 000$ |
| $8$ | $10$ | 无额外限制 |
### 样例
#### 样例 1
考虑以下调用:
`array_operation([2, 1, 1, 2], [2, 1, 3, 3], [0, 0, 1], [1, 3, 3])`
* [$0$, $1$] 是一个绝妙区间。这是因为两个数组 $A[0]$, $A[1]$ 和 $B[0]$, $B[1]$ 是相等的。
* [$0$, $3$] 是一个绝妙区间。这是因为可以通过执行以下操作,使 [$2$, $1$, $1$, $2$] 变为 [$2$, $1$, $3$, $3$]。
* 选择 $i = 3$,$j = 0$ 并执行操作。操作后数组变为 [$2$, $1$, $1$, $3$]。
* 选择 $i = 2$,$j = 1$ 并执行操作。操作后数组变为 [$2$, $1$, $2$, $3$]。
* 选择 $i = 2$,$j = 0$ 并执行操作。操作后数组变为 [$2$, $1$, $3$, $3$]。
* [$1$, $3$] 不是一个绝妙区间。可以证明,无论如何执行操作,都无法使 [$1$, $1$, $2$] 变为 [$1$, $3$, $3$]。
因此,函数应返回 [$1$, $1$, $0$]。
#### 样例 2
考虑以下调用:
`array_operation([1, 2, 1, 1], [2, 3, 1, 4, 2], [0, 0, 1, 1, 2], [2, 4, 3, 4, 3])`
在所有区间中,绝妙区间为 [$0$, $2$], [$0$, $3$], [$0$, $4$], [$1$, $4$], [$2$, $2$]。因此,函数应返回 [$1$, $1$, $0$, $1$, $0$]。