测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2224. 动态逆序对

编程题 省选/NOI-
知识点

题目描述

对于序列 $a$,它的逆序对数定义为集合
$$\{(i,j)| i<j \wedge a_i > a_j \}$$
中的元素个数。

现在给出 $1\sim n$ 的一个排列,按照某种顺序依次删除 $m$ 个元素,你的任务是在每次删除一个元素**之前**统计整个序列的逆序对数。

输入格式

第一行包含两个整数 $n$ 和 $m$,即初始元素的个数和删除的元素个数。
以下 $n$ 行,每行包含一个 $1 \sim n$ 之间的正整数,即初始排列。
接下来 $m$ 行,每行一个正整数,依次为每次删除的元素。

输出格式

输出包含 $m$ 行,依次为删除每个元素之前,逆序对的个数。

输入输出样例

输入 #1
5 4
1
5
3
4
2
5
1
4
2
输出 #1
5
2
2
1

说明/提示

【数据范围】
对于 $100\%$ 的数据,$1\le n \le 10^5$,$1\le m \le 50000$。

【样例解释】
删除每个元素之前的序列依次为:
$$1,5,3,4,2$$
$$1,3,4,2$$
$$3,4,2$$
$$3,2$$
上一题 去做题 下一题