听说你会求逆序对??(自创的脑洞题)

xiaoxiao2021-02-28  128

今天脑洞有点大,出个题玩一下,希望各位开心!

题意:给出1~n的一组排列,求所有区间逆序对个数的和

Input:

第1行输入n(1<=n<=100000)

第2行输入n个整数a[i](1<=a[i]<=n),且各不相同

Output:

输出一行,所有区间逆序对个数的和,答案太大要求对1e9+7取模

限时:1000ms    限内存:64000kB

Sample Input_1:

5

5 1 2 3 4

Sample Output_1:

10

Sample Input_2:

5

1 2 3 4 5

Sample Output_2:

0

Sample Input_3:

5

5 4 3 2 1

Sample Output_3:

35

题意已经很明显了,这里还是解释下样例一吧:

逆序对:if(a[i]>a[j]&&i<j)即为一对逆序对

区间(1,2)逆序对个数为1,区间(1,3)逆序对个数为2,区间(1,4)逆序对个数为3,区间(1,5)逆序对个数为4,其余区间逆序对个数都为0。

所以答案:1+2+3+4=10;

这是本人自创的第4道题,觉得这题还有点意思,遂与君分享,哈哈。

本人写了一个O(n*logn),有更优方案的请联系我,有赏!

想要输入输出数据,或想要题解代码,或想要分享代码,或想要探讨解题思路,请下方留言或联系本人qq:1942410374,非常欢迎!!

转载请注明原文地址: https://www.6miu.com/read-61127.html

最新回复(0)