QOJ.ac

QOJ

Limite de temps : 3 s Limite de mémoire : 512 MB Points totaux : 110

#8120. 电梯

Statistiques

在一个城市里有一座高层建筑,共有 $n$ 层。有 $n$ 个人在底楼等电梯。第 $i$ 个人想去第 $a_i$ 层。没有两个人想去同一层。

电梯足够大,可以容纳所有人,但它非常狭窄,两个人不能并排站立;他们必须一个接一个地站着。

每个人都进了电梯,但他们没有考虑离开电梯的顺序!最初,第 $i$ 个人位于位置 $i$(从电梯门看去)。如果一个人想要离开电梯,所有在他们前面(更靠近门)的人也必须暂时离开电梯。当他们回到电梯时,可以随心所欲地重新排列顺序。在想要离开的人后面(离门更远)的人不会离开电梯。

上面的插图展示了第一个样例中电梯里人的初始顺序。电梯在 1 楼,位置 3 的人想要离开。为了让他们离开,位置 1 和 2 的人也必须离开。

Mirko 正在观察他们所处的状况并进行思考。他想知道,如果返回电梯的人总是以最优方式返回,那么总共会有多少次离开电梯的情况。如果一个人多次离开电梯,每次都单独计算。

Mirko 是一位经验丰富的程序员,他可以很容易地解决这个问题。但他的快乐是短暂的,因为他身边的朋友 Slavko 提出了 $q$ 个问题:如果位置 $x_i$ 的人不在电梯里,那么会有多少次离开电梯的情况?

Mirko 对 Slavko 的第一个问题之前以及每个问题之后的结果都很感兴趣。注意,对于每个问题,之前所有问题中提到的人也都被认为不在电梯里。

Mirko 开始解决这个问题,但很快意识到即使对他来说,这也不太容易。帮帮他!

注意:电梯将始终从第一层移动到第 $n$ 层,并在任何有人想要离开的楼层停下。

输入格式

第一行包含两个非负整数 $n$ 和 $q$ ($0 \le q < n \le 10^5$),分别表示人数/楼层数和问题数。

第二行包含 $n$ 个整数 $a_i$ ($1 \le a_i \le n, a_i \neq a_j$ 对于所有 $i \neq j$),其中 $a_i$ 是第 $i$ 个人想要离开的楼层。序列 $(a_i)$ 是一个排列。

第三行包含 $q$ 个整数 $x_i$ ($1 \le x_i \le n, x_i \neq x_j$ 对于所有 $i \neq j$),即 Slavko 的问题。

输出格式

在一行中打印 $q+1$ 个数字,其中第 $i$ 个数字是第 $i-1$ 个问题之后的离开次数。

子任务

子任务 分值 数据范围
1 16 $n, q \le 100$
2 19 $n, q \le 1000$
3 29 $q = 0$
4 46 无附加限制

样例

输入 1

5 2
3 4 1 2 5
3 2

输出 1

9 6 4

输入 2

7 0
4 5 2 1 6 3 7

输出 2

13

输入 3

3 2
3 1 2
1 2

输出 3

5 2 1

说明

第一个样例的说明:

插图展示了第一个查询之前离开电梯的情况。

电梯在第一层,位置 3 的人想要离开。但是,为了让他们离开,位置 1 和 2 的人必须先离开,然后他们以相同的位置回到电梯。

之后,在第二层,位置 4 的人想要离开。同样,位置 1 和 2 的人必须先离开,然后他们以相同的位置回到电梯。

之后,在第三层,位置 1 的人离开电梯,不需要其他人离开电梯。

之后,在第四层,位置 2 的人离开电梯,不需要其他人离开电梯。

最后,在第五层,位置 5 的人离开电梯。

总共,有 $3 + 3 + 1 + 1 + 1 = 9$ 次离开电梯的情况。

Figure 1. 上面的插图展示了第一个样例中电梯里人的初始顺序。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.