AT_abc279_e [ABC279E] Cheating Amidakuji
题目描述
有一个由 $N$ 根竖直的棍子和 $M$ 根连接这些棍子之间的横杆组成的“阿弥陀签”。每根横杆都垂直于竖棍,并且它们的高度各不相同。将竖棍从左到右依次编号为 $1,2,\dots,N$,横杆从上到下依次编号为 $1,2,\dots,M$。横杆 $i\ (1\leq i\leq M)$ 连接了竖棍 $A_i$ 和竖棍 $A_i+1$ 之间。
从竖棍 $1$ 的顶端开始,沿着阿弥陀签向下走,最终到达的竖棍编号称为**得分**。
对于 $i=1,2,\dots,M$,请回答以下问题:
- 定义 $S_i$ 为将横杆 $i$ 删除后的得分。请计算 $S_i$。
注意,实际上横杆不会真的被删除,因此每个问题是独立的。
更严格地说,具体操作如下:
给定一个长度为 $M$ 的数列 $A=(A_1,A_2,\dots,A_M)$,其中每个 $A_i$ 是 $1$ 到 $N-1$ 之间的整数。对于 $i=1,2,\dots,M$,请回答以下问题:
- 有一个数列 $B=(B_1,B_2,\dots,B_N)$,初始时对于每个 $j$,都有 $B_j=j$。接下来,依次对 $k=1,2,\dots,i-1,i+1,\dots,M$(即除了 $i$ 以外的 $1$ 到 $M$ 的整数 $k$,按升序)进行如下操作:
- 交换 $B_{A_k}$ 和 $B_{A_k+1}$ 的值。
- 所有操作结束后,满足 $B_j=1$ 的 $j$ 的值即为 $S_i$。请计算 $S_i$。
输入格式
输入以如下格式从标准输入读入。
> $N$ $M$ $A_1$ $A_2$ $\dots$ $A_M$
输出格式
输出 $M$ 行。对于每个 $i\ (1\leq i\leq M)$,第 $i$ 行输出 $S_i$ 的值(整数)。
说明/提示
### 限制条件
- $2\leq N\leq 2\times 10^5$
- $1\leq M\leq 2\times 10^5$
- $1\leq A_i\leq N-1\ (1\leq i\leq M)$
- 输入均为整数
### 样例解释 1
当 $i=2$ 时,$B$ 的变化如下:
- 初始时,$B=(1,2,3,4,5)$
- $k=1$ 时,交换 $B_1$ 和 $B_2$,$B=(2,1,3,4,5)$
- $k=3$ 时,交换 $B_3$ 和 $B_4$,$B=(2,1,4,3,5)$
- $k=4$ 时,交换 $B_2$ 和 $B_3$,$B=(2,4,1,3,5)$
所有操作结束后,$B_3=1$,因此 $S_2=3$。
同理:
- $i=1$ 时:依次对 $k=2,3,4$ 操作后,$B=(1,4,3,2,5)$,所以 $S_1=1$
- $i=3$ 时:依次对 $k=1,2,4$ 操作后,$B=(2,1,3,4,5)$,所以 $S_3=2$
- $i=4$ 时:依次对 $k=1,2,3$ 操作后,$B=(2,3,4,1,5)$,所以 $S_4=4$。
由 ChatGPT 4.1 翻译