[R26G]交换区间
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
时空限制
3.5S/1024M
题目描述
给定一个长度为 的排列 。
现在有 次独立的询问。每次询问会给出两个不相交的区间 和 。
对于每次询问,你需要回答:如果将排列 中位于区间 的子段和位于区间 的子段进行交换,新得到的排列的逆序对数量是多少?
每次询问都是独立的,即一次询问中的交换操作不会影响下一次询问,所有操作都基于初始排列 。
-
一个长度为 的排列是指由 这 个整数组成的一个序列,其中每个整数恰好出现一次。
-
一个排列的逆序对是指满足 且 的数对 的数量。
格式
输入格式
第一行包含两个整数 ,分别表示排列的长度和询问的数量。
第二行包含 个整数 ,表示初始排列。
接下来的 行,每行包含四个整数 ,描述一次询问的两个区间。保证 。
输出格式
对于每次询问,输出一行,包含一个整数,表示交换区间后新排列的逆序对数量。
样例
样例输入 #1
6 2
1 5 3 6 2 4
2 3 5 6
1 2 6 6
样例输出 #1
4
9
样例解释 #1
第一个询问:将这两个子段交换,排列变为:。
第二个询问:将这两个子段交换,排列变为:。
数据规模
对于 的数据, 。
对于 的数据,, , 是一个排列。
代码源挑战赛 Round 26
- Status
- Done
- Rule
- DMY
- Start at
- 2025-8-22 20:00
- End at
- 2025-8-22 21:30
- Duration
- 1.5 hour(s)
- Host
- Partic.
- 478