树状数组模板题,即用树状数组来统计逆序对数量
对于位置i,我们只需要去考虑左边比它大的元素个数,然后累加,即为整个数组的逆序对数量,记为res
小美拿到了一个排列,她定义f(i)为:将第i个元素取反后,形成的数组的逆序对数量。小美希望你求出f(1)到f(n)的值。排列是指一个长度为n的数组,1到n每个元素恰好出现了一次。
第一行输入一个正整数n,代表排列的大小
第二行输入n个正整数ai,代表排列的元素。
1≤n≤2×105
1≤ai≤n
输出n个整数,第i个整数是f(i)的值。
输入
3
1 2 3
输出
0 1 2
说明
第一个元素取反,数组将变成[-1,2,3],逆序对数量为 0.
第二个元素取反,数组将变成[1,-2,3],逆序对数量为1.
第三个元素取反,数组将变成[1,2,-3],逆序对数量为2.