AT_abc279_e.[ABC279E] Cheating Amidakuji
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个由 N 根竖直的棍子和 M 根连接这些棍子之间的横杆组成的“阿弥陀签”。每根横杆都垂直于竖棍,并且它们的高度各不相同。将竖棍从左到右依次编号为 1,2,…,N,横杆从上到下依次编号为 1,2,…,M。横杆 i (1≤i≤M) 连接了竖棍 Ai 和竖棍 Ai+1 之间。
从竖棍 1 的顶端开始,沿着阿弥陀签向下走,最终到达的竖棍编号称为得分。
对于 i=1,2,…,M,请回答以下问题:
- 定义 Si 为将横杆 i 删除后的得分。请计算 Si。
注意,实际上横杆不会真的被删除,因此每个问题是独立的。
更严格地说,具体操作如下:
给定一个长度为 M 的数列 A=(A1,A2,…,AM),其中每个 Ai 是 1 到 N−1 之间的整数。对于 i=1,2,…,M,请回答以下问题:
- 有一个数列 B=(B1,B2,…,BN),初始时对于每个 j,都有 Bj=j。接下来,依次对 k=1,2,…,i−1,i+1,…,M(即除了 i 以外的 1 到 M 的整数 k,按升序)进行如下操作:
- 交换 BAk 和 BAk+1 的值。
- 所有操作结束后,满足 Bj=1 的 j 的值即为 Si。请计算 Si。
输入格式
输入以如下格式从标准输入读入。
N M A1 A2 … AM
输出格式
输出 M 行。对于每个 i (1≤i≤M),第 i 行输出 Si 的值(整数)。
输入输出样例
输入#1
5 4 1 2 3 2
输出#1
1 3 2 4
输入#2
3 3 2 2 2
输出#2
1 1 1
输入#3
10 10 1 1 1 9 4 4 2 1 3 3
输出#3
2 2 2 3 3 3 1 3 4 4
说明/提示
限制条件
- 2≤N≤2×105
- 1≤M≤2×105
- 1≤Ai≤N−1 (1≤i≤M)
- 输入均为整数
样例解释 1
当 i=2 时,B 的变化如下:
- 初始时,B=(1,2,3,4,5)
- k=1 时,交换 B1 和 B2,B=(2,1,3,4,5)
- k=3 时,交换 B3 和 B4,B=(2,1,4,3,5)
- k=4 时,交换 B2 和 B3,B=(2,4,1,3,5)
所有操作结束后,B3=1,因此 S2=3。
同理:
- i=1 时:依次对 k=2,3,4 操作后,B=(1,4,3,2,5),所以 S1=1
- i=3 时:依次对 k=1,2,4 操作后,B=(2,1,3,4,5),所以 S3=2
- i=4 时:依次对 k=1,2,3 操作后,B=(2,3,4,1,5),所以 S4=4。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?