/ Vijos / 题库 /

动态逆序对[1]

动态逆序对[1]

时间限制:1秒  内存限制:256M


【问题描述】

  对于序列 \(A[i]\),它的逆序对数定义为满足:\(i < j\),且 \(A[i] > A[j]\) 的数对\((i,j)\)的个数。

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

【输入格式】

  输入第一行包含两个整数 \(n\) 和 \(m\),即初始元素的个数和删除的元素个数。
  以下 \(n\) 行每行包含一个 \(1\) 到 \(n\) 之间的正整数,即初始排列。
  以下 \(m\) 行每行一个正整数,依次为每次删除的元素。

【输出格式】

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

【输入输出样例】

 Input

5 4
1
5
3
4
2
5
1
4
2

 Output

5
2
2
1

【数据约定】

  数据范围与约定:\(1≤n≤10^5\),\(1≤m≤5*10^4\)。
  • 测试点 1-2 满足 \(n≤1000\),\(m≤100\)
  • 测试点 3-4 满足 \(n≤30000\),\(m≤10000\)
  • 测试点 5-6 满足 \(n≤50000\),\(m≤20000\)
  • 测试点 7-8 满足 \(n≤60000\),\(m≤40000\)
  • 测试点 9-10 满足 \(n≤100000\),\(m≤50000\)

【来源】

  Mr.he

信息

ID
2595
难度
9
分类
数据结构 | 线段树其他 | 分治 点击显示
标签
递交数
3
已通过
1
通过率
33%
被复制
1
上传者