[SMOJ1787]逆序对

题目描述

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,m1000
100%的数据: n,m100000


本题看似复杂,但破解了其中的奥妙之后,编码量十分短。

做法一:暴力做
直接按题意模拟,每次交换两个元素重新求逆序对
时间复杂度:取决于求逆序对的算法,两重 for 循环为 O(m×n2) 树状数组 O(m×nlo

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值