题目描述
Smart 得到了一个 1~ n 的全排列。
Smart 每次会交换第
i 个数和第 j 个数,对于每一次交换,Smart 需要 Sarah 回答该全排列的逆序对数为多少。“1、2、3、4、………、248289469!”Sarah 如是回答到。
Smart 觉得答案数太大,不太好判断是否正确,所以只需回答最后答案取模 2 的结果。
输入格式 1787.in
第一行一个整数
n ;第二行为 1~ n 的某个全排列;
第三行一个整数
m ,表示交换操作的次数。接下来 m 行,每行两个数
i 和 j 。
输出格式 1787.out
输出
m 行,每行包含一个整数表示交换后答案。
输入样例 1787.in
1
1 2 3 4
1
1 2
输出样例 1787.out
1
数据范围
30%的数据: n,m≤1000 ;
100%的数据: n,m≤100000 。
本题看似复杂,但破解了其中的奥妙之后,编码量十分短。
做法一:暴力做
直接按题意模拟,每次交换两个元素重新求逆序对
时间复杂度:取决于求逆序对的算法,两重 for 循环为 O(m×n2) ,树状数组为 O(m×nlo