codeforces911D Inversion Counting 求逆序数+小trick
题意:
给你一个1——N的排列,有M次询问,每次询问给出l,r也就是reverse[l,r]区间后,逆序对是奇数个还是偶数个。
题解:
这个题暴力是不行的。
我们考虑最先求出的逆序数有res个,然后进行转移。我们假设reverse后这段区间新得到了tmp个逆序对,而除此之外的其他区间的逆序对个数不受影响。那么
res=res+tmp-(len*(len-1)/2 - tmp)
=res+2*tmp-len*(len-1)/2
那么我们是不是只要算出tmp就行了呢?
根本不用,tmp*2根本不改变奇偶性!
对这些东西要敏感啊。
1.加上一个偶数不改变奇偶性。
2,加上一个数与减去一个数奇偶性相等。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步